Author: markt Date: Tue Nov 5 12:07:03 2013 New Revision: 1538960 URL: http://svn.apache.org/r1538960 Log: Fix failing unit tests after refactoring of Jasper to use the JAR abstraction from the JAR scanner.
Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java?rev=1538960&r1=1538959&r2=1538960&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/scan/JarFactory.java Tue Nov 5 12:07:03 2013 @@ -33,10 +33,12 @@ public class JarFactory { String jarUrl = url.toString(); if (jarUrl.startsWith("jar:file:")) { if (jarUrl.endsWith("!/")) { - return new JarFileUrlJar(url); + return new JarFileUrlJar(url, true); } else { return new JarFileUrlNestedJar(url); } + } else if (jarUrl.startsWith("file:")) { + return new JarFileUrlJar(url, false); } else { return new UrlJar(url); } Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java?rev=1538960&r1=1538959&r2=1538960&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/scan/JarFileUrlJar.java Tue Nov 5 12:07:03 2013 @@ -16,9 +16,11 @@ */ package org.apache.tomcat.util.scan; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.JarURLConnection; +import java.net.URISyntaxException; import java.net.URL; import java.util.Enumeration; import java.util.jar.JarEntry; @@ -27,7 +29,8 @@ import java.util.zip.ZipEntry; /** * Implementation of {@link Jar} that is optimised for file based JAR URLs that - * refer directly to a JAR file (e.g URLs of the form jar:file: ... .jar!/) . + * refer directly to a JAR file (e.g URLs of the form jar:file: ... .jar!/ or + * file:... .jar) . */ public class JarFileUrlJar implements Jar { @@ -36,11 +39,24 @@ public class JarFileUrlJar implements Ja private Enumeration<JarEntry> entries; private JarEntry entry = null; - public JarFileUrlJar(URL url) throws IOException { - JarURLConnection jarConn = (JarURLConnection) url.openConnection(); - jarConn.setUseCaches(false); - jarFile = jarConn.getJarFile(); - jarFileURL = jarConn.getJarFileURL(); + public JarFileUrlJar(URL url, boolean startsWithJar) throws IOException { + if (startsWithJar) { + // jar:file:... + JarURLConnection jarConn = (JarURLConnection) url.openConnection(); + jarConn.setUseCaches(false); + jarFile = jarConn.getJarFile(); + jarFileURL = jarConn.getJarFileURL(); + } else { + // file:... + File f; + try { + f = new File(url.toURI()); + } catch (URISyntaxException e) { + throw new IOException(e); + } + jarFile = new JarFile(f); + jarFileURL = url; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org