Author: remm Date: Wed Nov 23 06:20:32 2005 New Revision: 348448 URL: http://svn.apache.org/viewcvs?rev=348448&view=rev Log: - Modify the way a stopped classloader behaves if accessed, as part of my previous CL work. - Log the illegal access attempt. - findClass will of return a CNFE.
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java?rev=348448&r1=348447&r2=348448&view=diff ============================================================================== --- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java (original) +++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java Wed Nov 23 06:20:32 2005 @@ -835,6 +835,11 @@ if (log.isDebugEnabled()) log.debug(" findClass(" + name + ")"); + // Cannot load anything from local repositories if class loader is stopped + if (!started) { + throw new ClassNotFoundException(name); + } + // (1) Permission to define this class when using a SecurityManager if (securityManager != null) { int i = name.lastIndexOf('.'); @@ -1227,10 +1232,13 @@ log.debug("loadClass(" + name + ", " + resolve + ")"); Class clazz = null; - // Don't load classes if class loader is stopped + // Log access to stopped classloader if (!started) { - log.info(sm.getString("webappClassLoader.stopped", name)); - throw new ThreadDeath(); + try { + throw new IllegalStateException(); + } catch (IllegalStateException e) { + log.info(sm.getString("webappClassLoader.stopped", name), e); + } } // (0) Check our previously loaded local class cache --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]