[ https://issues.apache.org/jira/browse/WICKET-625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12505934 ]
Alastair Maw commented on WICKET-625: ------------------------------------- Added cache clean-up on per-application basis for PropertyResolver. > Wicket doesn't clean up properly when hot-deploying; hangs onto Class > references. > --------------------------------------------------------------------------------- > > Key: WICKET-625 > URL: https://issues.apache.org/jira/browse/WICKET-625 > Project: Wicket > Issue Type: Bug > Components: wicket, wicket-extensions, wicket-spring > Affects Versions: 1.3.0-beta1 > Reporter: Alastair Maw > Assignee: Alastair Maw > Attachments: WICKET-625.patch > > > When you undeploy a webapp, ideally it should go away and its > WebAppClassLoader should be garbage collected. There are various reasons this > won't happen, but they essentially split into two problems: > 1) The App Server has references to classes in the WebAppClassLoader in its > own objects (on Tomcat these are typically commons logging statics in > StandardContext in catalina, or some of the jakarta code). There's not much > you can do about this, short of getting a better app server. > 2) You hold references to Class objects loaded by your WebAppClassLoader in > static fields in other Classes loaded by your WebAppClassLoader. > Number 2 can be solved by the use of WeakReferences to the Class objects. > Note that you also need to be careful about classes that have Class > references internally, such as java.lang.reflect.Method and Field. You can > also hold these items in a WeakReference, but they have the potential to be > garbage collected randomly, unlike the underlying Class objects. > I have some patches that allow me to start up and shut down a Spring-backed > Wicket-based app and have the classloader cope properly. They could probably > do with some review. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.