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


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