I would be grateful if someone more knowledgeable than I in the area of class loaders reviewed the URL encoding part of this patch.
Thanks, Mark > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Sunday, February 22, 2004 9:04 PM > To: [EMAIL PROTECTED] > Subject: cvs commit: > jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/load > er WebappClassLoader.java > > markt 2004/02/22 13:04:18 > > Modified: catalina/src/share/org/apache/catalina/loader > WebappClassLoader.java > Log: > - Fix bug 10469. Inconsistent encoding of URLs. > - Remove missing imports (thanks to Eclipse). > - Access static method, Thread.dumpStack(), in a static way > (Eclipse again). > > Revision Changes Path > 1.50 +20 -13 > jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/load er/WebappClassLoader.java > > Index: WebappClassLoader.java > =================================================================== > RCS file: > /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/cat alina/loader/WebappClassLoader.java,v > retrieving revision 1.49 > retrieving revision 1.50 > diff -u -r1.49 -r1.50 > --- WebappClassLoader.java 29 Apr 2003 22:03:08 -0000 1.49 > +++ WebappClassLoader.java 22 Feb 2004 21:04:18 -0000 1.50 > @@ -69,13 +69,9 @@ > import java.io.InputStream; > import java.io.ByteArrayInputStream; > import java.io.IOException; > -import java.net.JarURLConnection; > import java.net.MalformedURLException; > import java.net.URL; > import java.net.URLClassLoader; > -import java.net.URLConnection; > -import java.net.URLStreamHandlerFactory; > -import java.net.URLStreamHandler; > import java.security.AccessControlException; > import java.security.AccessController; > import java.security.CodeSource; > @@ -83,7 +79,6 @@ > import java.security.PermissionCollection; > import java.security.Policy; > import java.security.PrivilegedAction; > -import java.security.cert.Certificate; > import java.util.ArrayList; > import java.util.Enumeration; > import java.util.HashMap; > @@ -91,7 +86,6 @@ > import java.util.Vector; > import java.util.jar.JarFile; > import java.util.jar.JarEntry; > -import java.util.jar.JarInputStream; > import java.util.jar.Manifest; > import java.util.jar.Attributes; > import java.util.jar.Attributes.Name; > @@ -102,9 +96,9 @@ > import javax.naming.NameClassPair; > > import org.apache.catalina.Lifecycle; > -import org.apache.catalina.LifecycleEvent; > import org.apache.catalina.LifecycleException; > import org.apache.catalina.LifecycleListener; > +import org.apache.catalina.util.URLEncoder; > > import org.apache.naming.JndiPermission; > import org.apache.naming.resources.ResourceAttributes; > @@ -1326,7 +1320,7 @@ > // Don't load classes if class loader is stopped > if (!started) { > log("Lifecycle error : CL stopped"); > - Thread.currentThread().dumpStack(); > + Thread.dumpStack(); > throw new ClassNotFoundException(name); > } > > @@ -2062,8 +2056,21 @@ > } > > //return new URL("file:" + realFile.getPath()); > - return realFile.toURL(); > + URLEncoder urlEncoder = new URLEncoder(); > + urlEncoder.addSafeCharacter(','); > + urlEncoder.addSafeCharacter(':'); > + urlEncoder.addSafeCharacter('-'); > + urlEncoder.addSafeCharacter('_'); > + urlEncoder.addSafeCharacter('.'); > + urlEncoder.addSafeCharacter('*'); > + urlEncoder.addSafeCharacter('/'); > + urlEncoder.addSafeCharacter('!'); > + urlEncoder.addSafeCharacter('~'); > + urlEncoder.addSafeCharacter('\''); > + urlEncoder.addSafeCharacter('('); > + urlEncoder.addSafeCharacter(')'); > > + return new > URL(urlEncoder.encode(realFile.toURL().toString())); > } > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]