Author: jboynes Date: Sat Feb 28 18:59:14 2015 New Revision: 1662988 URL: http://svn.apache.org/r1662988 Log: Add repro for #57647
Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Modified: tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java?rev=1662988&r1=1662987&r2=1662988&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java (original) +++ tomcat/trunk/java/org/apache/jasper/servlet/TldScanner.java Sat Feb 28 18:59:14 2015 @@ -277,7 +277,7 @@ public class TldScanner { } } - private class TldScannerCallback implements JarScannerCallback { + class TldScannerCallback implements JarScannerCallback { private boolean tldFound = false; private boolean jarFound = false; @@ -381,7 +381,7 @@ public class TldScanner { } - private boolean scanFoundNoTLDs() { + boolean scanFoundNoTLDs() { return jarFound && !tldFound; } } Modified: tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java?rev=1662988&r1=1662987&r2=1662988&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java (original) +++ tomcat/trunk/test/org/apache/jasper/servlet/TestTldScanner.java Sat Feb 28 18:59:14 2015 @@ -17,11 +17,15 @@ package org.apache.jasper.servlet; import java.io.File; +import java.lang.reflect.Constructor; +import java.net.JarURLConnection; +import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; import org.apache.catalina.Context; @@ -29,6 +33,7 @@ import org.apache.catalina.startup.Tomca import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.scan.StandardJarScanner; +import org.easymock.EasyMock; public class TestTldScanner extends TomcatBaseTest { @@ -86,4 +91,30 @@ public class TestTldScanner extends Tomc Assert.assertTrue(result, result.indexOf("<p>" + expected + "</p>") > 0); } + @Ignore("Illustrates Bug 57647") + @Test + public void testBug57647() throws Exception { + TldScanner scanner = EasyMock.createMock(TldScanner.class); + Constructor<TldScanner.TldScannerCallback> constructor = + TldScanner.TldScannerCallback.class.getDeclaredConstructor(TldScanner.class); + constructor.setAccessible(true); + TldScanner.TldScannerCallback callback = constructor.newInstance((TldScanner) scanner); + + File webappDir = new File("webapps/examples"); + Assert.assertFalse(callback.scanFoundNoTLDs()); + scan(callback, webappDir, "WEB-INF/lib/taglibs-standard-spec-1.2.3.jar"); + Assert.assertTrue(callback.scanFoundNoTLDs()); + scan(callback, webappDir, "WEB-INF/lib/taglibs-standard-impl-1.2.3.jar"); + Assert.assertTrue(callback.scanFoundNoTLDs()); + } + + private static void scan(TldScanner.TldScannerCallback callback, File webapp, String path) + throws Exception { + String fullPath = new File(webapp, path).toURI().toString(); + URL jarUrl = new URL("jar:" + fullPath + "!/"); + JarURLConnection connection = (JarURLConnection) jarUrl.openConnection(); + callback.scan(connection, path, true); + } + } + --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org