[ 
https://issues.apache.org/struts/browse/WW-2381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Musachy Barroso resolved WW-2381.
---------------------------------

    Resolution: Fixed

Thanks for the patch!

> Destroy method of Interceptor is never called by Struts
> -------------------------------------------------------
>
>                 Key: WW-2381
>                 URL: https://issues.apache.org/struts/browse/WW-2381
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.0.9
>         Environment: Window XP, Apache Tomcat 5.5.23, Java 5, Eclise 3.2
>            Reporter: Décio Heinzelmann Luckow
>             Fix For: 2.1.3
>
>         Attachments: InterceptorDestroy.diff, 
> InterceptorDestroyAgainstTrunk.diff
>
>
> I was testing the Interceptor behavior, and put an breakpoint inside the 
> methods init and destroy of Interceptor (TestInterceptor created). The init 
> method was ok, the  breakpoint stopped on the server startup.
> To test the breakpoint of destroy method I does:
> - normal shutdown of tomcat (via Tomcat plugin in Eclipse)
> - redeploy the application
> - changed some classes to tomcat do the automatic reload
> But any of this cases the destroy method was called. I seach in the source 
> code to find it and understand when it is called, but I don´t found.
> I use the 2.09 version, but is possible that it occurs in all versions of 
> Struts2
> Attached the conversation about this in dev-list
> Tom Schneider wrote:
> You know, I think you're right!  I searched the entire codebase (both xwork 
> and struts) and I have found nowhere where we call destroy() on the 
> interceptors.  I guess that hasn't been an issue because if the destroy isn't 
> being called, no big deal because your usually shutting down anyway.
> If we were to call destroy on the interceptors, I would expect it to happen 
> in the cleanup() method of Dispatcher.  This is where all the rest of the 
> cleanup happens.  At runtime, the list of interceptors is stored in the 
> ActionConfig object.  (part of xwork)  Perhaps it might be a good idea to 
> submit a patch that fixes this issue. :) (hint, hint) Tom
> Dale Newfield wrote:
> This might be why undeploying a struts webapp tends to fail (the struts core 
> and plugin jars can't be removed because they're still in use).
> Ted Husted wrote:
> I haven't traced the code, but I believe we redeploy the Interceptors in dev 
> mode, making a destroy option more important.

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