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
  
  
  

Reply via email to