Author: markt Date: Fri Nov 22 11:11:56 2013 New Revision: 1544487 URL: http://svn.apache.org/r1544487 Log: Always use a namespace aware parser for TLD files.
Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java?rev=1544487&r1=1544486&r2=1544487&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java Fri Nov 22 11:11:56 2013 @@ -653,20 +653,24 @@ public interface Context extends Contain /** - * Will the parsing of *.tld files for this Context be performed by a - * namespace aware parser? + * *.tld files are always parsed using a namespace aware parser. * - * @return true if namespace awareness is enabled. + * @return Always <code>true</true> + * + * @deprecated This option will be removed in 8.0.x. */ + @Deprecated public boolean getTldNamespaceAware(); /** - * Controls whether the parsing of *.tld files for this Context will be - * performed by a namespace aware parser. + * *.tld files are always parsed using a namespace aware parser. * - * @param tldNamespaceAware true to enable namespace awareness + * @param tldNamespaceAware ignored + * + * @deprecated */ + @Deprecated public void setTldNamespaceAware(boolean tldNamespaceAware); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1544487&r1=1544486&r2=1544487&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Fri Nov 22 11:11:56 2013 @@ -755,12 +755,6 @@ public class StandardContext extends Con /** - * Attribute value used to turn on/off TLD XML namespace validation - */ - private boolean tldNamespaceAware = Globals.STRICT_SERVLET_COMPLIANCE; - - - /** * Should we save the configuration. */ private boolean saveConfig = true; @@ -6616,13 +6610,13 @@ public class StandardContext extends Con @Override public boolean getTldNamespaceAware(){ - return tldNamespaceAware; + return true; } @Override public void setTldNamespaceAware(boolean tldNamespaceAware){ - this.tldNamespaceAware = tldNamespaceAware; + // NO-OP; } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java?rev=1544487&r1=1544486&r2=1544487&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java Fri Nov 22 11:11:56 2013 @@ -431,7 +431,7 @@ public class FailedContext extends Lifec public boolean getTldValidation() { return false; } @Override - public boolean getTldNamespaceAware() { return false; } + public boolean getTldNamespaceAware() { return true; } @Override public void setTldNamespaceAware(boolean tldNamespaceAware) { /* NO-OP */ } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java?rev=1544487&r1=1544486&r2=1544487&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/TldConfig.java Fri Nov 22 11:11:56 2013 @@ -77,44 +77,29 @@ public final class TldConfig implements /** * The <code>Digester</code>s available to process tld files. */ - private static Digester[] tldDigesters = new Digester[4]; + private static Digester[] tldDigesters = new Digester[2]; /** * Create (if necessary) and return a Digester configured to process the * tld. */ - private static Digester createTldDigester(boolean namespaceAware, - boolean validation) { + private static Digester createTldDigester(boolean validation) { Digester digester = null; - if (!namespaceAware && !validation) { + if (!validation) { if (tldDigesters[0] == null) { tldDigesters[0] = DigesterFactory.newDigester(validation, - namespaceAware, new TldRuleSet()); + true, new TldRuleSet()); tldDigesters[0].getParser(); } digester = tldDigesters[0]; - } else if (!namespaceAware && validation) { + } else { if (tldDigesters[1] == null) { tldDigesters[1] = DigesterFactory.newDigester(validation, - namespaceAware, new TldRuleSet()); + true, new TldRuleSet()); tldDigesters[1].getParser(); } digester = tldDigesters[1]; - } else if (namespaceAware && !validation) { - if (tldDigesters[2] == null) { - tldDigesters[2] = DigesterFactory.newDigester(validation, - namespaceAware, new TldRuleSet()); - tldDigesters[2].getParser(); - } - digester = tldDigesters[2]; - } else { - if (tldDigesters[3] == null) { - tldDigesters[3] = DigesterFactory.newDigester(validation, - namespaceAware, new TldRuleSet()); - tldDigesters[3].getParser(); - } - digester = tldDigesters[3]; } return digester; } @@ -580,8 +565,7 @@ public final class TldConfig implements private void init() { if (tldDigester == null){ - tldDigester = createTldDigester(context.getTldNamespaceAware(), - context.getTldValidation()); + tldDigester = createTldDigester(context.getTldValidation()); } } Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java?rev=1544487&r1=1544486&r2=1544487&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java Fri Nov 22 11:11:56 2013 @@ -602,7 +602,7 @@ public class TesterContext implements Co @Override public boolean getTldNamespaceAware() { - return false; + return true; } @Override 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=1544487&r1=1544486&r2=1544487&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Nov 22 11:11:56 2013 @@ -149,6 +149,12 @@ more than one data message may be sent to a remote WebSocket endpoint at a time. (markt) </fix> + <fix> + When Catalina parses TLD files, always use a namespace aware parser to + be consistent with how Jasper parses TLD files. The + <code>tldNamespaceAware</code> attribute of the Context is now ignored. + (markt) + </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org