From 24e99a425c305d0111d6b1382d36f1faa4e344a2 Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 11 Feb 2010 15:14:55 +0000 Subject: [PATCH] More memory leak prevention - ResourceBundle git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@909017 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/loader/WebappClassLoader.java | 4 ++++ java/org/apache/jasper/servlet/JspServletWrapper.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/java/org/apache/catalina/loader/WebappClassLoader.java b/java/org/apache/catalina/loader/WebappClassLoader.java index e9adf344f..d74cdeda3 100644 --- a/java/org/apache/catalina/loader/WebappClassLoader.java +++ b/java/org/apache/catalina/loader/WebappClassLoader.java @@ -47,6 +47,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.ResourceBundle; import java.util.Vector; import java.util.concurrent.ThreadPoolExecutor; import java.util.jar.Attributes; @@ -1773,6 +1774,9 @@ public class WebappClassLoader org.apache.juli.logging.LogFactory.release(this); } + // Clear any cached resource bundles + ResourceBundle.clearCache(this); + // Clear the classloader reference in the VM's bean introspector java.beans.Introspector.flushCaches(); diff --git a/java/org/apache/jasper/servlet/JspServletWrapper.java b/java/org/apache/jasper/servlet/JspServletWrapper.java index be7d22766..e153ccc2c 100644 --- a/java/org/apache/jasper/servlet/JspServletWrapper.java +++ b/java/org/apache/jasper/servlet/JspServletWrapper.java @@ -20,6 +20,7 @@ package org.apache.jasper.servlet; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URL; +import java.util.ResourceBundle; import javax.servlet.Servlet; import javax.servlet.ServletConfig; @@ -416,6 +417,9 @@ public class JspServletWrapper { public void destroy() { if (theServlet != null) { + // Memory leak prevention - ResourceBundle caches resources based + // on class loader + ResourceBundle.clearCache(ctxt.getJspLoader()); theServlet.destroy(); InstanceManager instanceManager = InstanceManagerFactory.getInstanceManager(config); try { -- 2.11.0