[
https://issues.apache.org/struts/browse/STR-3110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul Benedict updated STR-3110:
-------------------------------
Fix Version/s: (was: Pending Review)
1.4.0
1.3.10
Assignee: Paul Benedict
> PropertyUtils.clearDescriptors() call in ActionServlet.destroy() method is
> causing appliction classloader memory leak on Weblogic Portal
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: STR-3110
> URL: https://issues.apache.org/struts/browse/STR-3110
> Project: Struts 1
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.2.7
> Environment: Weblogic Portal on windows
> Reporter: Roopang Chauhan
> Assignee: Paul Benedict
> Fix For: 1.3.10, 1.4.0
>
>
> PropertyUtils.clearDescriptors() is being called from ActionServlet.destroy()
> when undeploying an appliction. This call is made after LogFactory.release().
> LogFactory.release() removes the application classloader instance from the
> LogFactory class. However PropertyUtils.clearDescriptors() causes
> LogFactory.getFactory() to be invoked again:
> getFactory():218, org.apache.commons.logging.LogFactory
> getLog():351, org.apache.commons.logging.LogFactory
> <init>():130, org.apache.commons.beanutils.ConvertUtilsBean
> <init>():110, org.apache.commons.beanutils.BeanUtilsBean
> initialValue():68, org.apache.commons.beanutils.BeanUtilsBean$1
> get():80, org.apache.commons.beanutils.ContextClassLoaderLocal
> getInstance():78, org.apache.commons.beanutils.BeanUtilsBean
> getInstance():101, org.apache.commons.beanutils.PropertyUtilsBean
> clearDescriptors():121, org.apache.commons.beanutils.PropertyUtils
> destroy():308, org.apache.struts.action.ActionServlet
> This puts the application classloader instance back in the factories hashmap
> in LogFactory after which it is never removed. This causes a leak.
> I think that the PropertyUtils.clearDescriptors() call should be made before
> LogFactory.release() and that should fix this problem. I just tried using an
> earlier version of struts without the PropertyUtils.clearDescriptors() call
> and that solved the application classloader memory leak.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.