rdonkin 2003/10/13 13:52:21
Modified: digester/src/java/org/apache/commons/digester
ExtendedBaseRules.java
digester/src/test/org/apache/commons/digester
EBRTestCase.java
Log:
Fixed bug with extended rules.
Revision Changes Path
1.9 +5 -5
jakarta-commons/digester/src/java/org/apache/commons/digester/ExtendedBaseRules.java
Index: ExtendedBaseRules.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/ExtendedBaseRules.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ExtendedBaseRules.java 9 Oct 2003 21:09:46 -0000 1.8
+++ ExtendedBaseRules.java 13 Oct 2003 20:52:21 -0000 1.9
@@ -285,7 +285,7 @@
} else {
// we don't have a match yet - so try exact ancester
//
- rulesList = findExactAncesterMatch(parentPattern);
+ rulesList = findExactAncesterMatch(pattern);
if (rulesList != null) {
// we have a match!
// so ignore all basic matches from now on
1.10 +26 -5
jakarta-commons/digester/src/test/org/apache/commons/digester/EBRTestCase.java
Index: EBRTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/EBRTestCase.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- EBRTestCase.java 9 Oct 2003 21:09:48 -0000 1.9
+++ EBRTestCase.java 13 Oct 2003 20:52:21 -0000 1.10
@@ -386,7 +386,6 @@
}
public void testAncesterMatch() throws Exception {
- System.out.println("Starting ancester match...");
// test fixed root ancester
digester.getRules().clear();
@@ -446,5 +445,27 @@
assertEquals("Wild ancester match (2)", 1, list.size());
assertEquals("Match missed (5)", "star-b-c-star" , ((TestRule)
list.get(0)).getIdentifier());
System.out.println("Finished ancester match.");
+ }
+
+ public void testLongMatch() {
+
+ digester.getRules().clear();
+
+ digester.addRule("a/b/c/d/*", new TestRule("a-b-c-d-star"));
+
+ List list = digester.getRules().match(null, "a/b/c/d/e");
+ assertEquals("Long match (1)", 1, list.size());
+ assertEquals("Match missed (1)", "a-b-c-d-star" , ((TestRule)
list.get(0)).getIdentifier());
+
+ list = digester.getRules().match(null, "a/b/c/d/e/f");
+ assertEquals("Long match (2)", 1, list.size());
+ assertEquals("Match missed (2)", "a-b-c-d-star" , ((TestRule)
list.get(0)).getIdentifier());
+
+ list = digester.getRules().match(null, "a/b/c/d/e/f/g");
+ assertEquals("Long match (3)", 1, list.size());
+ assertEquals("Match missed (3)", "a-b-c-d-star" , ((TestRule)
list.get(0)).getIdentifier());
+
+ list = digester.getRules().match(null, "a/b/c/d");
+ assertEquals("Long match (4)", 0, list.size());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]