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]