tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: svn commit: r465418 - in /tomcat/container/tc5.5.x: catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java webapps/docs/changelog.xml
Date Wed, 18 Oct 2006 23:37:59 GMT
is this existent in 6.0 as well?


markt@apache.org wrote:
> Author: markt
> Date: Wed Oct 18 16:32:37 2006
> New Revision: 465418
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=465418
> Log:
> Fix bug 38048. memory leak with EL in JSPs. Patch provided by Taras Tielkes.
>
> Modified:
>     tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
>     tomcat/container/tc5.5.x/webapps/docs/changelog.xml
>
> Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
> URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java?view=diff&rev=465418&r1=465417&r2=465418
> ==============================================================================
> --- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
(original)
> +++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
Wed Oct 18 16:32:37 2006
> @@ -41,7 +41,10 @@
>  import java.util.ArrayList;
>  import java.util.Enumeration;
>  import java.util.HashMap;
> +import java.util.HashSet;
>  import java.util.Iterator;
> +import java.util.Map;
> +import java.util.Set;
>  import java.util.Vector;
>  import java.util.jar.Attributes;
>  import java.util.jar.JarEntry;
> @@ -1630,7 +1633,10 @@
>              }
>          }
>          
> -         // Clear the IntrospectionUtils cache.
> +        // Remove entries for this webapp from the JSP EL BeanInfo cache
> +        cleanElCache();
> +        
> +        // Clear the IntrospectionUtils cache.
>          IntrospectionUtils.clear();
>          
>          // Clear the classloader reference in common-logging
> @@ -1642,6 +1648,34 @@
>      }
>  
>  
> +    protected void cleanElCache() {
> +        try {
> +            Class managerClass =
> +                Class.forName("org.apache.commons.el.BeanInfoManager");
> +            Field cacheField =
> +                managerClass.getDeclaredField("mBeanInfoManagerByClass");
> +            cacheField.setAccessible(true);
> +            Map map = (Map) cacheField.get(null);
> +            
> +            Set victims = new HashSet();
> +                
> +            for (Iterator i = map.keySet().iterator(); i.hasNext();) {
> +                Class cachedClass = (Class) i.next();
> +                if(loadedByThisOrChild(cachedClass)) {
> +                    victims.add(cachedClass);
> +                }
> +            }
> +            
> +            map.keySet().removeAll(victims);
> +            
> +            } catch (Throwable t) {
> +                if (log.isDebugEnabled()) {
> +                    log.debug("Could not clean EL cache", t);
> +            }
> +        }
> +    }
> +    
> +    
>      protected void nullInstance(Object instance) {
>          if (instance == null) {
>              return;
>
> Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
> URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?view=diff&rev=465418&r1=465417&r2=465418
> ==============================================================================
> --- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
> +++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Wed Oct 18 16:32:37 2006
> @@ -79,6 +79,10 @@
>          Patch provided by Tristan Marly. (markt)
>        </fix>
>        <fix>
> +        <bug>38048</bug>: Fix memory leak assoaciated with use of expression
> +        language in JSPs. Patch provided by Taras Tielkes. (markt)
> +      </fix>
> +      <fix>
>          <bug>40633</bug>: Remove references to the DefaultContext from the
>          documentation. (markt)
>        </fix>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message