jfarcand 2005/09/27 16:42:53
Modified: catalina/src/share/org/apache/catalina/loader
WebappClassLoader.java
Log:
Port fix from SJSAS.
Patch submitted by: Jan Luehe
Revision Changes Path
1.51 +16 -3
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
Index: WebappClassLoader.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- WebappClassLoader.java 8 Sep 2005 15:00:54 -0000 1.50
+++ WebappClassLoader.java 27 Sep 2005 23:42:53 -0000 1.51
@@ -1470,6 +1470,21 @@
*/
public void stop() throws LifecycleException {
+ /*
+ * Clear the IntrospectionUtils cache.
+ *
+ * Implementation note:
+ * Any reference to IntrospectionUtils which may cause the static
+ * initalizer of that class to be invoked must occur prior to setting
+ * the started flag to FALSE, because the static initializer of
+ * IntrospectionUtils makes a call to
+ * org.apache.commons.logging.LogFactory.getLog(), which ultimately
+ * calls the loadClass() method of the thread context classloader,
+ * which is the same as this classloader, whose impl throws a
+ * ThreadDeath if the started flag has been set to FALSE.
+ */
+ IntrospectionUtils.clear();
+
started = false;
int length = files.length;
@@ -1515,8 +1530,6 @@
org.apache.commons.logging.LogFactory.release(this);
// Clear the classloader reference in the VM's bean introspector
java.beans.Introspector.flushCaches();
- // Clear the IntrospectionUtils cache
- IntrospectionUtils.clear();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]