Author: markt Date: Tue Mar 11 11:34:31 2014 New Revision: 1576288 URL: http://svn.apache.org/r1576288 Log: Add a work-around for XML documents (often TLDs) that only refer to J2EE schemas by file name
Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalResolver.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalResolver.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalResolver.java?rev=1576288&r1=1576287&r2=1576288&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalResolver.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/descriptor/LocalResolver.java Tue Mar 11 11:34:31 2014 @@ -37,6 +37,12 @@ public class LocalResolver implements En private static final StringManager sm = StringManager.getManager(Constants.PACKAGE_NAME); + private static final String[] JAVA_EE_NAMESPACES = { + XmlIdentifiers.JAVAEE_1_4_NS, + XmlIdentifiers.JAVAEE_5_NS, + XmlIdentifiers.JAVAEE_7_NS }; + + private final Map<String,String> publicIds; private final Map<String,String> systemIds; private final boolean blockExternal; @@ -94,6 +100,18 @@ public class LocalResolver implements En return is; } + // Work-around for XML documents that use just the file name for the + // location to refer to a JavaEE schema + for (String javaEENamespace : JAVA_EE_NAMESPACES) { + String javaEESystemId = javaEENamespace + '/' + systemId; + resolved = systemIds.get(javaEESystemId); + if (resolved != null) { + InputSource is = new InputSource(resolved); + is.setPublicId(publicId); + return is; + } + } + // Resolve the supplied systemId against the base URI systemUri; try { @@ -133,6 +151,7 @@ public class LocalResolver implements En return is; } } + throw new FileNotFoundException(sm.getString("localResolver.unresolvedEntity", name, publicId, systemId, base)); } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1576288&r1=1576287&r2=1576288&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Tue Mar 11 11:34:31 2014 @@ -99,6 +99,11 @@ <bug>56244</bug>: Fix MBeans descriptor for WebappClassLoader MBean. (kkolinko) </fix> + <add> + Add a work around for validating XML documents (often TLDs) that use + just the file name to refer to refer to the JavaEE schema on which they + are based. (markt) + </add> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org