craigmcc 01/09/05 11:52:37 Modified: digester/src/java/org/apache/commons/digester Digester.java RulesBase.java digester/src/test/org/apache/commons/digester DigesterTestCase.java RulesBaseTestCase.java Log: RulesBase.match() must return a zero-length list if there are no matching rules. It was incorrectly returning null in some circumstances. Submitted by: Robert Burrell Donkin <[EMAIL PROTECTED]> Revision Changes Path 1.17 +6 -6 jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java Index: Digester.java =================================================================== RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- Digester.java 2001/08/26 22:13:44 1.16 +++ Digester.java 2001/09/05 18:52:37 1.17 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v 1.16 2001/08/26 22:13:44 craigmcc Exp $ - * $Revision: 1.16 $ - * $Date: 2001/08/26 22:13:44 $ + * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v 1.17 2001/09/05 18:52:37 craigmcc Exp $ + * $Revision: 1.17 $ + * $Date: 2001/09/05 18:52:37 $ * * ==================================================================== * @@ -106,7 +106,7 @@ * * @author Craig McClanahan * @author Scott Sanders - * @version $Revision: 1.16 $ $Date: 2001/08/26 22:13:44 $ + * @version $Revision: 1.17 $ $Date: 2001/09/05 18:52:37 $ */ public class Digester extends DefaultHandler { @@ -647,7 +647,7 @@ // Fire "body" events for all relevant rules List rules = getRules().match(namespaceURI, match); - if (rules != null) { + if ((rules != null) && (rules.size() > 0)) { String bodyText = this.bodyText.toString().trim(); for (int i = 0; i < rules.size(); i++) { try { @@ -845,7 +845,7 @@ // Fire "begin" events for all relevant rules List rules = getRules().match(namespaceURI, match); - if (rules != null) { + if ((rules != null) && (rules.size() > 0)) { String bodyText = this.bodyText.toString(); for (int i = 0; i < rules.size(); i++) { try { 1.6 +6 -4 jakarta-commons/digester/src/java/org/apache/commons/digester/RulesBase.java Index: RulesBase.java =================================================================== RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/RulesBase.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- RulesBase.java 2001/09/04 02:36:44 1.5 +++ RulesBase.java 2001/09/05 18:52:37 1.6 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/RulesBase.java,v 1.5 2001/09/04 02:36:44 sanders Exp $ - * $Revision: 1.5 $ - * $Date: 2001/09/04 02:36:44 $ + * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/RulesBase.java,v 1.6 2001/09/05 18:52:37 craigmcc Exp $ + * $Revision: 1.6 $ + * $Date: 2001/09/05 18:52:37 $ * * ==================================================================== * @@ -86,7 +86,7 @@ * </ul> * * @author Craig R. McClanahan - * @version $Revision: 1.5 $ $Date: 2001/09/04 02:36:44 $ + * @version $Revision: 1.6 $ $Date: 2001/09/05 18:52:37 $ */ public class RulesBase implements Rules { @@ -261,6 +261,8 @@ } } } + if (rulesList == null) + rulesList = new ArrayList(); return (rulesList); } 1.4 +6 -6 jakarta-commons/digester/src/test/org/apache/commons/digester/DigesterTestCase.java Index: DigesterTestCase.java =================================================================== RCS file: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/DigesterTestCase.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DigesterTestCase.java 2001/08/08 03:21:17 1.3 +++ DigesterTestCase.java 2001/09/05 18:52:37 1.4 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/DigesterTestCase.java,v 1.3 2001/08/08 03:21:17 craigmcc Exp $ - * $Revision: 1.3 $ - * $Date: 2001/08/08 03:21:17 $ + * $Header: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/DigesterTestCase.java,v 1.4 2001/09/05 18:52:37 craigmcc Exp $ + * $Revision: 1.4 $ + * $Date: 2001/09/05 18:52:37 $ * * ==================================================================== * @@ -83,7 +83,7 @@ * </p> * * @author Craig R. McClanahan - * @version $Revision: 1.3 $ $Date: 2001/08/08 03:21:17 $ + * @version $Revision: 1.4 $ $Date: 2001/09/05 18:52:37 $ */ public class DigesterTestCase extends TestCase { @@ -276,8 +276,8 @@ List list = null; - assertNull("Initial rules list is empty", - digester.getRules().match("a")); + assertEquals("Initial rules list is empty", + 0, digester.getRules().match("a").size()); digester.addSetProperties("a"); assertEquals("Add a matching rule", 1, digester.getRules().match("a").size()); 1.2 +6 -6 jakarta-commons/digester/src/test/org/apache/commons/digester/RulesBaseTestCase.java Index: RulesBaseTestCase.java =================================================================== RCS file: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/RulesBaseTestCase.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- RulesBaseTestCase.java 2001/09/05 03:33:26 1.1 +++ RulesBaseTestCase.java 2001/09/05 18:52:37 1.2 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/RulesBaseTestCase.java,v 1.1 2001/09/05 03:33:26 craigmcc Exp $ - * $Revision: 1.1 $ - * $Date: 2001/09/05 03:33:26 $ + * $Header: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/RulesBaseTestCase.java,v 1.2 2001/09/05 18:52:37 craigmcc Exp $ + * $Revision: 1.2 $ + * $Date: 2001/09/05 18:52:37 $ * * ==================================================================== * @@ -87,7 +87,7 @@ * </p> * * @author Craig R. McClanahan - * @version $Revision: 1.1 $ $Date: 2001/09/05 03:33:26 $ + * @version $Revision: 1.2 $ $Date: 2001/09/05 18:52:37 $ */ public class RulesBaseTestCase extends TestCase { @@ -173,8 +173,8 @@ // perform tests List list = null; - assertNull("Initial rules list is empty", - digester.getRules().match(null,"a")); + assertEquals("Initial rules list is empty", + 0, digester.getRules().match("a").size()); digester.addSetProperties("a"); assertEquals("Add a matching rule", 1, digester.getRules().match(null,"a").size());