[ 
https://issues.apache.org/jira/browse/MYFACES-3510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13235308#comment-13235308
 ] 

Leonardo Uribe commented on MYFACES-3510:
-----------------------------------------

I have attached a patch with a possible solution. The idea is change 
propertyDescriptorCache, adding a soft reference.

    private static Map<Class<?>, SoftReference<Map<String, 
_PropertyDescriptorHolder>>> 
            propertyDescriptorCache =
        new WeakHashMap<Class<?>, SoftReference<Map<String, 
_PropertyDescriptorHolder>>>();

In this way, we can avoid the strong reference through the static var, and 
since the garbage collector needs to clean all soft references before throw an 
OutOfMemoryError, we ensure that cache is cleaned up if memory is required.

@Ruben: Could you please try if this patch can solve the problem?
                
> Application components classloader memory leak
> ----------------------------------------------
>
>                 Key: MYFACES-3510
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3510
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.1.6
>         Environment: WIndows Glassfish Embedded
>            Reporter: Ruben Martin Pozo
>         Attachments: MYFACES-3510-1.patch, screenshot-1.jpg
>
>
> We've seen an application classloader memory leak due to the new class 
> javax.faces.component._PropertyDescriptorHolder class introduced in version 
> 2.1.6
> This class holds a reference to a Method of a component loaded by the 
> application classloader. The memory leak shows up when the 
> _PropertyDescriptorHolder is stored in the _ComponentAttributesMap class that 
> is loaded by the system class loader.
> You should use a WeakReference instead of storing the direct reference to the 
> Method

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to