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

Jakob Korherr commented on MYFACES-2942:
----------------------------------------

Committed patch for ApplicationImpl.

Now I am working on the MetadataTargetImpl problem mentioned by Martin. I found 
out that this is exactly the WeakHashMap-issue that Stan mentioned.

In that issue the value of the WeakHashMap directly references the key and thus 
the key cannot be GCed (see javadoc of WeakHashMap for more details). Before 
revision 962933 we were using the Class name (=String) as the key for the 
WeakHashMap and thus did not have this value-key-references. However, this 
turned out to cause problems if there are multiple versions of the "same" Class 
available (e.g. in a shared classloader scenario, see MYFACES-2806).

A possible solution to this problem is to use a WeakReference for the value 
(suggested by the javadoc of WeakHashMap). Another one would be to re-introduce 
the Class name (=String) as the key for the WeakHashMap instead of the Class 
instance itself, but to also query for the current ClassLoader (thus having a 
Map<ClassLoader<Map<String, MetadataTarget>).

> Memory Leak in MyFaces 2.0.1 probably as well in 2.0.2
> ------------------------------------------------------
>
>                 Key: MYFACES-2942
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2942
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.0.1, 2.0.2
>         Environment: JBOSS AS
>            Reporter: Werner Punz
>            Assignee: Jakob Korherr
>            Priority: Critical
>         Attachments: MYFACES-2942-RuntimeConfig.patch
>
>
> Stan Silvert from JBoss reports:
> I'm pretty sure 2.0.1 has a memory leak on undeploy.  Mojarra had an undeploy 
> leak and it took a long time to track it down.  The same test I was using on 
> Mojarra also failed on MyFaces but I haven't had time to track down the leak 
> in MyFaces.
> Maybe this is fixed in 2.0.2?  If not maybe someone can go ahead and take a 
> look?  The mem leak keeps MyFaces from passing TCK on JBoss AS.  To test, all 
> you need to do is create a small exploaded JSF app.  Then have a script that 
> touches web.xml every 10 seconds.  That will cause the app to redeploy.  You 
> will get a PermGen error in about an hour. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to