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=38795>. 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=38795 Summary: StandardContext doesn't always reset thread's contextClassLoader Product: Tomcat 5 Version: Unknown Platform: Other OS/Version: other Status: NEW Severity: critical Priority: P2 Component: Catalina AssignedTo: tomcat-dev@jakarta.apache.org ReportedBy: [EMAIL PROTECTED] org.apache.catalina.core.StandardContext.stop() method changes the current thead's context classloader but does not always reset it if an exception is thrown. It resets the classloader in the finally clause of a try statement, but the try statement begins too late. If an exception is thrown before the try statament is reached, the contextClassLoader is not reset to its original value. Here's the code fragment: // Binding thread ClassLoader oldCCL = bindThread(); // Stop our filters filterStop(); // Stop our application listeners listenerStop(); // Stop ContainerBackgroundProcessor thread super.threadStop(); if ((manager != null) && (manager instanceof Lifecycle)) { ((Lifecycle) manager).stop(); } // Finalize our character set mapper setCharsetMapper(null); // Normal container shutdown processing if (log.isDebugEnabled()) log.debug("Processing standard container shutdown"); // Notify our interested LifecycleListeners lifecycle.fireLifecycleEvent(STOP_EVENT, null); started = false; try { ... } finally { // Unbinding thread unbindThread(oldCCL); } An exception is sometimes thrown in this statement (which is before the try statement): if ((manager != null) && (manager instanceof Lifecycle)) { ((Lifecycle) manager).stop(); } due to bug 30489 (java.lang.IllegalStateException: removeAttribute: Session already invalidated) Leaving the substituted classLoader severely disrupts the JBoss deployment scanner causing it to throw an exception and fail in each loop. Restarting JBoss is required to recover from this problem. -- 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]