You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2005/10/27 06:48:24 UTC
DO NOT REPLY [Bug 37264] New: -
ServletContextListener cannot load classes
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: bc4all@gmail.com
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: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org