Author: jboynes
Date: Sat Feb 28 18:59:16 2015
New Revision: 1662989
URL: http://svn.apache.org/r1662989
Log:
Log warning if any jar scan does not find a TLD
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=1662989&r1=1662988&r2=1662989&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:16 2015
@@ -278,17 +278,13 @@ public class TldScanner {
}
class TldScannerCallback implements JarScannerCallback {
- private boolean tldFound = false;
- private boolean jarFound = false;
+ private boolean foundJarWithoutTld = false;
@Override
public void scan(JarURLConnection urlConn, String webappPath,
boolean isWebapp) throws IOException {
- if (!jarFound) {
- jarFound = true;
- }
boolean found = false;
- URL jarURL = null;
+ URL jarURL;
try (Jar jar = JarFactory.newInstance(urlConn.getURL())) {
jarURL = jar.getJarFileURL();
jar.nextEntry();
@@ -309,9 +305,8 @@ public class TldScanner {
}
}
}
- if (found) {
- tldFound = true;
- } else {
+ if (!found) {
+ foundJarWithoutTld = true;
if (log.isDebugEnabled()) {
log.debug(Localizer.getMessage("jsp.tldCache.noTldInJar",
jarURL.toString()));
@@ -322,9 +317,6 @@ public class TldScanner {
@Override
public void scan(File file, final String webappPath, boolean isWebapp)
throws IOException {
- if (!jarFound) {
- jarFound = true;
- }
File metaInf = new File(file, "META-INF");
if (!metaInf.isDirectory()) {
return;
@@ -356,7 +348,6 @@ public class TldScanner {
URL url = file.toUri().toURL();
TldResourcePath path = new TldResourcePath(url,
resourcePath);
parseTld(path);
- tldFound = true;
} catch (SAXException e) {
throw new IOException(e);
}
@@ -382,7 +373,7 @@ public class TldScanner {
boolean scanFoundNoTLDs() {
- return jarFound && !tldFound;
+ return foundJarWithoutTld;
}
}
}
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=1662989&r1=1662988&r2=1662989&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:16 2015
@@ -25,7 +25,6 @@ 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;
@@ -91,14 +90,13 @@ 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);
+ TldScanner.TldScannerCallback callback =
constructor.newInstance(scanner);
File webappDir = new File("webapps/examples");
Assert.assertFalse(callback.scanFoundNoTLDs());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]