geuerp      2002/09/28 06:49:39

  Modified:    src/org/apache/xml/security/c14n/helper AttrCompare.java
  Log:
  Now relies on getName() instead of getLocalName() which MUST be the same at 
this place
  
  Revision  Changes    Path
  1.7       +41 -48    
xml-security/src/org/apache/xml/security/c14n/helper/AttrCompare.java
  
  Index: AttrCompare.java
  ===================================================================
  RCS file: 
/home/cvs/xml-security/src/org/apache/xml/security/c14n/helper/AttrCompare.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AttrCompare.java  28 Sep 2002 08:47:37 -0000      1.6
  +++ AttrCompare.java  28 Sep 2002 13:49:39 -0000      1.7
  @@ -118,7 +118,18 @@
            if (isNamespaceAttr1) {
   
               // both are namespaces
  -            return this.nsAttrCompare(attr0, attr1);
  +            String localname0 = attr0.getLocalName();
  +            String localname1 = attr1.getLocalName();
  +
  +            if (localname0.equals("xmlns")) {
  +               localname0 = "";
  +            }
  +
  +            if (localname1.equals("xmlns")) {
  +               localname1 = "";
  +            }
  +
  +            return localname0.compareTo(localname1);
            } else {
   
               // attr0 is a namespace, attr1 is not
  @@ -132,57 +143,39 @@
            } else {
   
               // none is a namespae
  -            return this.nonNSAttrCompare(attr0, attr1);
  -         }
  -      }
  -   }
  -
  -   private int nsAttrCompare(Attr attr0, Attr attr1) {
  -      String localname0 = attr0.getLocalName();
  -      String localname1 = attr1.getLocalName();
  -
  -      if (localname0.equals("xmlns")) {
  -         localname0 = "";
  -      }
  -
  -      if (localname1.equals("xmlns")) {
  -         localname1 = "";
  -      }
  -
  -      return localname0.compareTo(localname1);
  -   }
  -
  -   private int nonNSAttrCompare(Attr attr0, Attr attr1) {
  +            String namespaceURI0 = attr0.getNamespaceURI();
  +            String namespaceURI1 = attr1.getNamespaceURI();
   
  -      String namespaceURI0 = attr0.getNamespaceURI();
  -      String namespaceURI1 = attr1.getNamespaceURI();
  +            if (namespaceURI0 == null) {
  +               if (namespaceURI1 == null) {
  +                  /*
  +                  String localName0 = attr0.getLocalName();
  +                  String localName1 = attr1.getLocalName();
  +                  return localName0.compareTo(localName1);
  +                  */
  +
  +                  String name0 = attr0.getName();
  +                  String name1 = attr1.getName();
  +                  return name0.compareTo(name1);
  +               } else {
  +                  return ATTR0_BEFORE_ATTR1;
  +               }
  +            } else {
  +               if (namespaceURI1 == null) {
  +                  return ATTR1_BEFORE_ATTR0;
  +               } else {
  +                  int a = namespaceURI0.compareTo(namespaceURI1);
  +
  +                  if (a != 0) {
  +                     return a;
  +                  }
   
  -      if (namespaceURI0 == null) {
  -         if (namespaceURI1 == null) {
  +                  String localName0 = attr0.getLocalName();
  +                  String localName1 = attr1.getLocalName();
   
  -            // if the namespaceURI of *both* attributes is null, there MUST 
be a localName.
  -            // so if the namespaceURIs are null *and* any of the localNames 
is null, a NullPointer is created...
  -            String localName0 = attr0.getLocalName();
  -            String localName1 = attr1.getLocalName();
  -
  -            return localName0.compareTo(localName1);
  -         } else {
  -            return ATTR0_BEFORE_ATTR1;
  -         }
  -      } else {
  -         if (namespaceURI1 == null) {
  -            return ATTR1_BEFORE_ATTR0;
  -         } else {
  -            int a = namespaceURI0.compareTo(namespaceURI1);
  -
  -            if (a != 0) {
  -               return a;
  +                  return localName0.compareTo(localName1);
  +               }
               }
  -
  -            String localName0 = attr0.getLocalName();
  -            String localName1 = attr1.getLocalName();
  -
  -            return localName0.compareTo(localName1);
            }
         }
      }
  
  
  

Reply via email to