DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=37264>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=37264

           Summary: ServletContextListener cannot load classes
           Product: Tomcat 5
           Version: Nightly Build
          Platform: All
        OS/Version: other
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: [EMAIL PROTECTED]


If a ServletContextListener implmentation references a class that is not yet 
loaded, the loading would with some ZipException.

This is caused by the fact that when a context is stopped, the classloader is 
unbound before the ServletContextListeners are called. The sequence of calls is 
something like this:

StandardContext.stop()
  lifecycle.fireLifecycleEvent(STOP_EVENT, null);
    NamingContextListener.lifecycleEvent();
      ContextBindings.unbindClassLoader()
  ...
  listenerStop(); // trouble

My solutions was to move listenerStop() before the call to fireLifecycleEvents()


I also filed bug 37262, about the datasources not being released when the 
context is stopped. These two are somehow related, I think the right sequence 
when stopping the context is:
1. call the listeners
2. release the datasources
3. unbind the classloader

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to