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/loader/WebappClassLoader.java Index: WebappClassLoader.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/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]