[
https://issues.apache.org/jira/browse/MYFACES-2942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922378#action_12922378
]
Leonardo Uribe commented on MYFACES-2942:
-----------------------------------------
Hi
It is good to use FacesContext attribute map instead (anyway
FacesContext.getCurrentInstance uses a ThreadLocal var, but it is correctly
cleaned after request ends), but I'm not agree with remove all ThreadLocal
instances, because that's not the problem. The problem is add code that "clean"
those instances where it is required.
There are valid cases where ThreadLocal usage is required. For example, in
FlashELResolver it is possible that an EL expression could be resolved outside
normal JSF lifecycle, where there is no FacesContext set, so the code committed
will not work as expected. The same applies for VariableResolverToELResolver,
so that code must be reverted to its original form.
I see that my suggestion about "clear" the map was not very clear. I was
thinking on add some code inside
org.apache.myfaces.webapp.AbstractFacesInitializer.destroyFaces(ServletContext)
to do proper cleanup (if you have a WeakHashMap somewhere, call a method that
removes the key).
For the case of MetaRulesetImpl, I think use a WeakHashMap and do proper
cleanup on AbstractFacesInitializer.destroyFaces is better. There is no reason
to call FacesContext.getCurrentInstance(), since the returned instances are
"application scope" and once initialized does not change.
> 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.