Author: remm Date: Tue Apr 24 06:42:07 2007 New Revision: 531938 URL: http://svn.apache.org/viewvc?view=rev&rev=531938 Log: - 42202: Fix a problem handling %xx encoded URLs (unfortunately, some are encoded - the webapp CL and the system CL - and some are not - the URL CL).
Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java?view=diff&rev=531938&r1=531937&r2=531938 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Tue Apr 24 06:42:07 2007 @@ -26,6 +26,7 @@ import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; @@ -427,8 +428,18 @@ resourcePath)); } - File file = new File(url.getFile()); - file = file.getCanonicalFile(); + File file = null; + try { + file = new File(url.toURI()); + } catch (URISyntaxException e) { + // Ignore, probably an unencoded char + file = new File(url.getFile()); + } + try { + file = file.getCanonicalFile(); + } catch (IOException e) { + // Ignore + } tldScanJar(file); } @@ -674,11 +685,18 @@ if (loader instanceof URLClassLoader) { URL[] urls = ((URLClassLoader) loader).getURLs(); for (int i=0; i<urls.length; i++) { - // Expect file URLs + // Expect file URLs, these are %xx encoded or not depending on + // the class loader // This is definitely not as clean as using JAR URLs either // over file or the custom jndi handler, but a lot less // buggy overall - File file = new File(urls[i].getFile()); + File file = null; + try { + file = new File(urls[i].toURI()); + } catch (URISyntaxException e) { + // Ignore, probably an unencoded char + file = new File(urls[i].getFile()); + } try { file = file.getCanonicalFile(); } catch (IOException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]