You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2009/07/20 23:22:37 UTC
svn commit: r796016 -
/tomcat/trunk/java/org/apache/catalina/startup/TldRuleSet.java
Author: markt
Date: Mon Jul 20 21:22:33 2009
New Revision: 796016
URL: http://svn.apache.org/viewvc?rev=796016&view=rev
Log:
Make sure the duplicateUri flag is reset each time a TLD file is parsed. This was causing seemly random TCK failures depending on the order the tests were run in.
Modified:
tomcat/trunk/java/org/apache/catalina/startup/TldRuleSet.java
Modified: tomcat/trunk/java/org/apache/catalina/startup/TldRuleSet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/TldRuleSet.java?rev=796016&r1=796015&r2=796016&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/TldRuleSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/TldRuleSet.java Mon Jul 20 21:22:33 2009
@@ -88,7 +88,10 @@
*/
public void addRuleInstances(Digester digester) {
+ // Note the sharing of state between rules
TaglibUriRule taglibUriRule = new TaglibUriRule();
+
+ digester.addRule(prefix + "taglib", new TaglibRule(taglibUriRule));
digester.addRule(prefix + "taglib/uri", taglibUriRule);
@@ -100,8 +103,26 @@
}
+/*
+ * This rule only exists to reset the duplicateUri flag on the TaglibUriRule.
+ */
+final class TaglibRule extends Rule {
+ private final TaglibUriRule taglibUriRule;
+
+ public TaglibRule(TaglibUriRule taglibUriRule) {
+ this.taglibUriRule = taglibUriRule;
+ }
+
+ public void body(String namespace, String name, String text)
+ throws Exception {
+ taglibUriRule.setDuplicateUri(false);
+ }
+
+}
+
final class TaglibUriRule extends Rule {
+ // This is set to false for each fiel processed by the TaglibRule
private boolean duplicateUri;
public TaglibUriRule() {
@@ -128,7 +149,6 @@
}
} else {
// New URI. Add it to known list and carry on
- duplicateUri = false;
tldConfig.addTaglibUri(text);
}
}
@@ -136,6 +156,11 @@
public boolean isDuplicateUri() {
return duplicateUri;
}
+
+ public void setDuplicateUri(boolean duplciateUri) {
+ this.duplicateUri = duplciateUri;
+ }
+
}
final class TaglibListenerRule extends Rule {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org