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]

Reply via email to