Author: markt Date: Wed Jan 2 21:57:27 2013 New Revision: 1428084 URL: http://svn.apache.org/viewvc?rev=1428084&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54256 Improve error reporting when a JAR file fails extension validation by including the name of the JAR file in the exception.
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/util/ExtensionValidator.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1428079 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/util/ExtensionValidator.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/util/ExtensionValidator.java?rev=1428084&r1=1428083&r2=1428084&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/util/ExtensionValidator.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/util/ExtensionValidator.java Wed Jan 2 21:57:27 2013 @@ -175,15 +175,18 @@ public final class ExtensionValidator { // Locate the Manifests for all bundled JARs NamingEnumeration<Binding> ne = null; + // Primarily used for error reporting + String jarName = null; try { ne = dirContext.listBindings("WEB-INF/lib/"); while ((ne != null) && ne.hasMoreElements()) { Binding binding = ne.nextElement(); - if (!binding.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar")) { + jarName = binding.getName(); + if (!jarName.toLowerCase(Locale.ENGLISH).endsWith(".jar")) { continue; } Object obj = - dirContext.lookup("/WEB-INF/lib/" + binding.getName()); + dirContext.lookup("/WEB-INF/lib/" + jarName); if (!(obj instanceof Resource)) { // Probably a directory named xxx.jar - ignore it continue; @@ -192,16 +195,16 @@ public final class ExtensionValidator { inputStream = resource.streamContent(); Manifest jmanifest = getManifest(inputStream); if (jmanifest != null) { - ManifestResource mre = new ManifestResource( - binding.getName(), - jmanifest, - ManifestResource.APPLICATION); + ManifestResource mre = new ManifestResource(jarName, + jmanifest, ManifestResource.APPLICATION); appManifestResources.add(mre); } } } catch (NamingException nex) { // Jump out of the check for this application because it // has no resources + } catch (IOException ioe) { + throw new IOException("Jar: " + jarName, ioe); } finally { if (inputStream != null) { try { Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1428084&r1=1428083&r2=1428084&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Jan 2 21:57:27 2013 @@ -65,6 +65,11 @@ context path contains encoded characters such as a space. This triggered compilation issues in Jasper. Patch provided by Polina Genova. (markt) </fix> + <fix> + <bug>54256</bug>: Improve error reporting when a JAR file fails + extension validation by including the name of the JAR file in the + exception. (markt) + </fix> </changelog> </subsection> <subsection name="Jasper"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org