craigmcc 01/08/04 15:04:15
Modified: digester/src/java/org/apache/commons/digester Digester.java
Log:
Fix the anomaly that I reported a couple of weeks ago. Rule matching was not
working with namespace awareness turned off, because the arguments to
startElement() contained the following values:
- localName was a zero length string
- qName is the "local" part of the name
and, because we use localName to match rules, no rules were fired. Now,
Digester will use qName in this scenario.
Revision Changes Path
1.8 +7 -4
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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Digester.java 2001/07/19 20:55:52 1.7
+++ Digester.java 2001/08/04 22:04:15 1.8
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v
1.7 2001/07/19 20:55:52 sanders Exp $
- * $Revision: 1.7 $
- * $Date: 2001/07/19 20:55:52 $
+ * $Header:
/home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v
1.8 2001/08/04 22:04:15 craigmcc Exp $
+ * $Revision: 1.8 $
+ * $Date: 2001/08/04 22:04:15 $
*
* ====================================================================
*
@@ -106,7 +106,7 @@
*
* @author Craig McClanahan
* @author Scott Sanders
- * @version $Revision: 1.7 $ $Date: 2001/07/19 20:55:52 $
+ * @version $Revision: 1.8 $ $Date: 2001/08/04 22:04:15 $
*/
public class Digester extends DefaultHandler {
@@ -639,6 +639,9 @@
bodyText.setLength(0);
// Compute the current matching rule
+ if (!namespaceAware &&
+ ((localName == null) || (localName.length() < 1)))
+ localName = qName;
if (match.length() > 0)
match += "/" + localName;
else