Author: markt Date: Fri Sep 2 19:22:19 2016 New Revision: 1759019 URL: http://svn.apache.org/viewvc?rev=1759019&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=59961 Add an option to the StandardJarScanner to control whether or not JAR Manifests are scanned for additional class path entries.
Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java tomcat/trunk/webapps/docs/changelog.xml tomcat/trunk/webapps/docs/config/jar-scanner.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java?rev=1759019&r1=1759018&r2=1759019&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanner.java Fri Sep 2 19:22:19 2016 @@ -94,6 +94,17 @@ public class StandardJarScanner implemen } /** + * Controls the JAR file Manifest scanning extension. + */ + private boolean scanManifest = true; + public boolean isScanManifest() { + return scanManifest; + } + public void setScanManifest(boolean scanManifest) { + this.scanManifest = scanManifest; + } + + /** * Controls the testing all files to see of they are JAR files extension. */ private boolean scanAllFiles = false; @@ -325,7 +336,9 @@ public class StandardJarScanner implemen if ("jar".equals(url.getProtocol()) || url.getPath().endsWith(Constants.JAR_EXT)) { try (Jar jar = JarFactory.newInstance(url)) { - processManifest(jar, isWebapp, classPathUrlsToProcess); + if (isScanManifest()) { + processManifest(jar, isWebapp, classPathUrlsToProcess); + } callback.scan(jar, webappPath, isWebapp); } } else if ("file".equals(url.getProtocol())) { @@ -336,7 +349,9 @@ public class StandardJarScanner implemen // Treat this file as a JAR URL jarURL = UriUtil.buildJarUrl(f); try (Jar jar = JarFactory.newInstance(jarURL)) { - processManifest(jar, isWebapp, classPathUrlsToProcess); + if (isScanManifest()) { + processManifest(jar, isWebapp, classPathUrlsToProcess); + } callback.scan(jar, webappPath, isWebapp); } } else if (f.isDirectory()) { Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1759019&r1=1759018&r2=1759019&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Fri Sep 2 19:22:19 2016 @@ -45,6 +45,15 @@ issues do not "pop up" wrt. others). --> <section name="Tomcat 9.0.0.M11" rtext="in development"> + <subsection name="Catalina"> + <changelog> + <add> + <bug>59961</bug>: Add an option to the <code>StandardJarScanner</code> + to control whether or not JAR Manifests are scanned for additional + class path entries. (markt) + </add> + </changelog> + </subsection> <subsection name="Other"> <changelog> <fix> Modified: tomcat/trunk/webapps/docs/config/jar-scanner.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/jar-scanner.xml?rev=1759019&r1=1759018&r2=1759019&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/config/jar-scanner.xml (original) +++ tomcat/trunk/webapps/docs/config/jar-scanner.xml Fri Sep 2 19:22:19 2016 @@ -117,6 +117,12 @@ files. The default is <code>false</code>.</p> </attribute> + <attribute name="scanManifest" required="false"> + <p>If <code>true</code>, the Manifest files of any JARs found will be + scanned for additional class path entires and those entries will be added + to the URLs to scan. The default is <code>true</code>.</p> + </attribute> + </attributes> </subsection> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org