You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2013/03/07 11:32:17 UTC

svn commit: r1453761 - in /santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature: Reference.java reference/ReferenceSubTreeData.java

Author: coheigea
Date: Thu Mar  7 10:32:17 2013
New Revision: 1453761

URL: http://svn.apache.org/r1453761
Log:
[SANTUARIO-353] - ReferenceSubTreeData.iterator() does not return nodes in document order

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/Reference.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/reference/ReferenceSubTreeData.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/Reference.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/Reference.java?rev=1453761&r1=1453760&r2=1453761&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/Reference.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/Reference.java Thu Mar  7 10:32:17 2013
@@ -612,7 +612,27 @@ public class Reference extends Signature
             try {
                 final Set<Node> s = input.getNodeSet();
                 referenceData = new ReferenceNodeSetData() {
-                    public Iterator<Node> iterator() { return s.iterator(); }
+                    public Iterator<Node> iterator() { 
+                        return new Iterator<Node>() {
+                            
+                            Iterator<Node> sIterator = s.iterator();
+                            
+                            @Override
+                            public boolean hasNext() {
+                                return sIterator.hasNext();
+                            }
+
+                            @Override
+                            public Node next() {
+                                return sIterator.next();
+                            }
+
+                            @Override
+                            public void remove() {
+                                throw new UnsupportedOperationException();
+                            }
+                        };
+                    }
                 };
             } catch (Exception e) {
                 // log a warning

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/reference/ReferenceSubTreeData.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/reference/ReferenceSubTreeData.java?rev=1453761&r1=1453760&r2=1453761&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/reference/ReferenceSubTreeData.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/reference/ReferenceSubTreeData.java Thu Mar  7 10:32:17 2013
@@ -131,13 +131,13 @@ public class ReferenceSubTreeData implem
         {
             switch (node.getNodeType()) {
                 case Node.ELEMENT_NODE :
+                    nodeSet.add(node);
                     NamedNodeMap attrs = node.getAttributes();
                     if (attrs != null) {
                         for (int i = 0, len = attrs.getLength(); i < len; i++) {
                             nodeSet.add(attrs.item(i));
                         }
                     }
-                    nodeSet.add(node);
                     Node pSibling = null;
                     for (Node child = node.getFirstChild(); child != null;
                         child = child.getNextSibling()) {