This only occurs when Tomcat is started without a SecurityManager and then later application code sets a SecurityManager.
Please see the following bug report for an explanation of why that is not a good thing to do: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7052 Thanks for taking the time to analyze how this works but the behaviour will not be changed. Glenn On Thu, Mar 04, 2004 at 11:46:31AM +0200, Matti Härö wrote: > Hi, > > the patch below fixes a bug that occasionally causes a NullPointerException in > loadClass() method. The problem was caused by the way the system security > manager was used in this class. For checking if there is a security manager, and > then using the security manager for checking the access, two (potentially > different) security managers were used. Checking for the existence of a security > manager was done by System.getSecurityManager(). Then inside the if block, a > reference to a class private variable securityManager was used. > > The private variable securityManager had been set in the constructor of the > JasperLoader instance, and was often different from the one used in the > loadClass() method for checking if there was a securityManager. More > specifically, the private attribute securityManager was often null, while > System.getSecurityManager() returned a non-null value in loadClass() method. > This in turn caused the loadClass() to throw a NullPointerException. > > Mr Matti Haro > > --- JasperLoader.java 2004-03-04 08:57:52.000000000 +0200 > +++ > ./tomcat-5-0-19-src/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/servlet/JasperLoader.java > 2004-03-04 08:59:43.000000000 +0200 > @@ -75,6 +75,7 @@ > * @author Anil K. Vijendran > * @author Harish Prabandham > * @author Jean-Francois Arcand > + * @author Matti Haro > */ > public class JasperLoader extends URLClassLoader { > > @@ -82,7 +83,6 @@ > private CodeSource codeSource; > private String className; > private ClassLoader parent; > - private SecurityManager securityManager; > private PrivilegedLoadClass privLoadClass; > > public JasperLoader(URL[] urls, ClassLoader parent, > @@ -93,7 +93,6 @@ > this.codeSource = codeSource; > this.parent = parent; > this.privLoadClass = new PrivilegedLoadClass(); > - this.securityManager = System.getSecurityManager(); > } > > /** > @@ -147,8 +146,9 @@ > resolveClass(clazz); > return (clazz); > } > - > + > // (.5) Permission to access this class when using a SecurityManager > + SecurityManager securityManager = System.getSecurityManager(); > if (securityManager != null) { > int dot = name.lastIndexOf('.'); > if (dot >= 0) { > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] ---------------------------------------------------------------------- Glenn Nielsen [EMAIL PROTECTED] | /* Spelin donut madder | MOREnet System Programming | * if iz ina coment. | Missouri Research and Education Network | */ | ---------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]