[ 
https://issues.apache.org/jira/browse/WICKET-625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12507704
 ] 

Igor Vaynberg commented on WICKET-625:
--------------------------------------

here is another thing you might want to look into, if wicket is deployed and 
undeployed without any url hit you get

RROR - log                        - failed wicket
org.apache.wicket.WicketRuntimeException: There is no application attached to 
current thread main
        at org.apache.wicket.Application.get(Application.java:170)
        at org.apache.wicket.markup.MarkupCache.<init>(MarkupCache.java:80)
        at 
org.apache.wicket.settings.Settings.getMarkupCache(Settings.java:1258)
        at org.apache.wicket.Application.internalDestroy(Application.java:827)
        at 
org.apache.wicket.protocol.http.WebApplication.internalDestroy(WebApplication.java:495)
        at 
org.apache.wicket.protocol.http.WicketFilter.destroy(WicketFilter.java:104)
        at org.mortbay.jetty.servlet.FilterHolder.doStop(FilterHolder.java:102)
        at 
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
        at 
org.mortbay.jetty.servlet.ServletHandler.doStop(ServletHandler.java:162)
        at 
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
        at 
org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:131)
        at 
org.mortbay.jetty.servlet.SessionHandler.doStop(SessionHandler.java:124)
        at 
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
        at 
org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:131)
        at 
org.mortbay.jetty.handler.ContextHandler.doStop(ContextHandler.java:477)
        at org.mortbay.jetty.webapp.WebAppContext.doStop(WebAppContext.java:513)
        at 
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
        at 
org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:131)
        at org.mortbay.jetty.Server.doStop(Server.java:260)
        at 
org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
        at com.tbs.webapp.StartTbs.main(StartTbs.java:29)

> 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.

Reply via email to