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 2014/06/13 13:20:44 UTC
svn commit: r1602377 - in /santuario/xml-security-java/trunk/src:
main/java/org/apache/jcp/xml/dsig/internal/dom/
main/java/org/apache/xml/security/keys/
main/java/org/apache/xml/security/signature/
main/java/org/apache/xml/security/stax/ext/ main/java...
Author: coheigea
Date: Fri Jun 13 11:20:43 2014
New Revision: 1602377
URL: http://svn.apache.org/r1602377
Log:
Replacing some getChildNodes() calls
Modified:
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/KeyInfo.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java
santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java
santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMKeyInfo.java Fri Jun 13 11:20:43 2014
@@ -33,7 +33,6 @@ import java.util.*;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of KeyInfo.
@@ -97,36 +96,32 @@ public final class DOMKeyInfo extends Ba
id = DOMUtils.getIdAttributeValue(kiElem, "Id");
// get all children nodes
- NodeList nl = kiElem.getChildNodes();
- int length = nl.getLength();
- if (length < 1) {
- throw new MarshalException
- ("KeyInfo must contain at least one type");
- }
- List<XMLStructure> content = new ArrayList<XMLStructure>(length);
- for (int i = 0; i < length; i++) {
- Node child = nl.item(i);
- // ignore all non-Element nodes
- if (child.getNodeType() != Node.ELEMENT_NODE) {
- continue;
- }
- Element childElem = (Element)child;
- String localName = childElem.getLocalName();
- String namespace = childElem.getNamespaceURI();
- if (localName.equals("X509Data") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMX509Data(childElem));
- } else if (localName.equals("KeyName") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMKeyName(childElem));
- } else if (localName.equals("KeyValue") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(DOMKeyValue.unmarshal(childElem));
- } else if (localName.equals("RetrievalMethod") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMRetrievalMethod(childElem,
- context, provider));
- } else if (localName.equals("PGPData") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMPGPData(childElem));
- } else { //may be MgmtData, SPKIData or element from other namespace
- content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
+ List<XMLStructure> content = new ArrayList<XMLStructure>();
+ Node firstChild = kiElem.getFirstChild();
+ if (firstChild == null) {
+ throw new MarshalException("KeyInfo must contain at least one type");
+ }
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
+ String localName = childElem.getLocalName();
+ String namespace = childElem.getNamespaceURI();
+ if (localName.equals("X509Data") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMX509Data(childElem));
+ } else if (localName.equals("KeyName") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMKeyName(childElem));
+ } else if (localName.equals("KeyValue") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(DOMKeyValue.unmarshal(childElem));
+ } else if (localName.equals("RetrievalMethod") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMRetrievalMethod(childElem,
+ context, provider));
+ } else if (localName.equals("PGPData") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMPGPData(childElem));
+ } else { //may be MgmtData, SPKIData or element from other namespace
+ content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
+ }
}
+ firstChild = firstChild.getNextSibling();
}
keyInfoTypes = Collections.unmodifiableList(content);
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMPGPData.java Fri Jun 13 11:20:43 2014
@@ -32,7 +32,6 @@ import javax.xml.crypto.dsig.keyinfo.PGP
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.exceptions.Base64DecodingException;
import org.apache.xml.security.utils.Base64;
@@ -144,13 +143,12 @@ public final class DOMPGPData extends Ba
// get all children nodes
byte[] keyId = null;
byte[] keyPacket = null;
- NodeList nl = pdElem.getChildNodes();
- int length = nl.getLength();
- List<XMLStructure> other = new ArrayList<XMLStructure>(length);
- for (int x = 0; x < length; x++) {
- Node n = nl.item(x);
- if (n.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element)n;
+
+ List<XMLStructure> other = new ArrayList<XMLStructure>();
+ Node firstChild = pdElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
String localName = childElem.getLocalName();
String namespace = childElem.getNamespaceURI();
try {
@@ -166,6 +164,7 @@ public final class DOMPGPData extends Ba
throw new MarshalException(bde);
}
}
+ firstChild = firstChild.getNextSibling();
}
this.keyId = keyId;
this.keyPacket = keyPacket;
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java Fri Jun 13 11:20:43 2014
@@ -31,7 +31,6 @@ import java.util.*;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of SignatureProperties.
@@ -88,21 +87,19 @@ public final class DOMSignaturePropertie
// unmarshal attributes
id = DOMUtils.getIdAttributeValue(propsElem, "Id");
- NodeList nodes = propsElem.getChildNodes();
- int length = nodes.getLength();
- List<SignatureProperty> properties =
- new ArrayList<SignatureProperty>(length);
- for (int i = 0; i < length; i++) {
- Node child = nodes.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- String name = child.getLocalName();
- String namespace = child.getNamespaceURI();
+ List<SignatureProperty> properties = new ArrayList<SignatureProperty>();
+ Node firstChild = propsElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ String name = firstChild.getLocalName();
+ String namespace = firstChild.getNamespaceURI();
if (!name.equals("SignatureProperty") || !XMLSignature.XMLNS.equals(namespace)) {
throw new MarshalException("Invalid element name: " + namespace + ":" + name +
", expected SignatureProperty");
}
- properties.add(new DOMSignatureProperty((Element)child));
+ properties.add(new DOMSignatureProperty((Element)firstChild));
}
+ firstChild = firstChild.getNextSibling();
}
if (properties.isEmpty()) {
throw new MarshalException("properties cannot be empty");
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java Fri Jun 13 11:20:43 2014
@@ -31,7 +31,6 @@ import java.util.*;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of SignatureProperty.
@@ -96,11 +95,11 @@ public final class DOMSignatureProperty
}
id = DOMUtils.getIdAttributeValue(propElem, "Id");
- NodeList nodes = propElem.getChildNodes();
- int length = nodes.getLength();
- List<XMLStructure> content = new ArrayList<XMLStructure>(length);
- for (int i = 0; i < length; i++) {
- content.add(new javax.xml.crypto.dom.DOMStructure(nodes.item(i)));
+ List<XMLStructure> content = new ArrayList<XMLStructure>();
+ Node firstChild = propElem.getFirstChild();
+ while (firstChild != null) {
+ content.add(new javax.xml.crypto.dom.DOMStructure(firstChild));
+ firstChild = firstChild.getNextSibling();
}
if (content.isEmpty()) {
throw new MarshalException("content cannot be empty");
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMUtils.java Fri Jun 13 11:20:43 2014
@@ -392,9 +392,11 @@ public final class DOMUtils {
* @param node the parent node whose children are to be removed
*/
public static void removeAllChildren(Node node) {
- NodeList children = node.getChildNodes();
- for (int i = 0, length = children.getLength(); i < length; i++) {
- node.removeChild(children.item(i));
+ Node firstChild = node.getFirstChild();
+ while (firstChild != null) {
+ Node nodeToRemove = firstChild;
+ firstChild = firstChild.getNextSibling();
+ node.removeChild(nodeToRemove);
}
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMX509Data.java Fri Jun 13 11:20:43 2014
@@ -35,7 +35,6 @@ import javax.security.auth.x500.X500Prin
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.apache.xml.security.exceptions.Base64DecodingException;
import org.apache.xml.security.utils.Base64;
@@ -95,36 +94,32 @@ public final class DOMX509Data extends B
*/
public DOMX509Data(Element xdElem) throws MarshalException {
// get all children nodes
- NodeList nl = xdElem.getChildNodes();
- int length = nl.getLength();
- List<Object> content = new ArrayList<Object>(length);
- for (int i = 0; i < length; i++) {
- Node child = nl.item(i);
- // ignore all non-Element nodes
- if (child.getNodeType() != Node.ELEMENT_NODE) {
- continue;
- }
-
- Element childElem = (Element)child;
- String localName = childElem.getLocalName();
- String namespace = childElem.getNamespaceURI();
- if (localName.equals("X509Certificate") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(unmarshalX509Certificate(childElem));
- } else if (localName.equals("X509IssuerSerial") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(new DOMX509IssuerSerial(childElem));
- } else if (localName.equals("X509SubjectName") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(childElem.getFirstChild().getNodeValue());
- } else if (localName.equals("X509SKI") && XMLSignature.XMLNS.equals(namespace)) {
- try {
- content.add(Base64.decode(childElem));
- } catch (Base64DecodingException bde) {
- throw new MarshalException("cannot decode X509SKI", bde);
+ List<Object> content = new ArrayList<Object>();
+ Node firstChild = xdElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
+ String localName = childElem.getLocalName();
+ String namespace = childElem.getNamespaceURI();
+ if (localName.equals("X509Certificate") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(unmarshalX509Certificate(childElem));
+ } else if (localName.equals("X509IssuerSerial") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(new DOMX509IssuerSerial(childElem));
+ } else if (localName.equals("X509SubjectName") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(childElem.getFirstChild().getNodeValue());
+ } else if (localName.equals("X509SKI") && XMLSignature.XMLNS.equals(namespace)) {
+ try {
+ content.add(Base64.decode(childElem));
+ } catch (Base64DecodingException bde) {
+ throw new MarshalException("cannot decode X509SKI", bde);
+ }
+ } else if (localName.equals("X509CRL") && XMLSignature.XMLNS.equals(namespace)) {
+ content.add(unmarshalX509CRL(childElem));
+ } else {
+ content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
}
- } else if (localName.equals("X509CRL") && XMLSignature.XMLNS.equals(namespace)) {
- content.add(unmarshalX509CRL(childElem));
- } else {
- content.add(new javax.xml.crypto.dom.DOMStructure(childElem));
}
+ firstChild = firstChild.getNextSibling();
}
this.content = Collections.unmodifiableList(content);
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMXMLObject.java Fri Jun 13 11:20:43 2014
@@ -34,7 +34,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* DOM-based implementation of XMLObject.
@@ -102,28 +101,27 @@ public final class DOMXMLObject extends
}
this.mimeType = DOMUtils.getAttributeValue(objElem, "MimeType");
- NodeList nodes = objElem.getChildNodes();
- int length = nodes.getLength();
- List<XMLStructure> content = new ArrayList<XMLStructure>(length);
- for (int i = 0; i < length; i++) {
- Node child = nodes.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element)child;
+ List<XMLStructure> content = new ArrayList<XMLStructure>();
+ Node firstChild = objElem.getFirstChild();
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
String tag = childElem.getLocalName();
String namespace = childElem.getNamespaceURI();
if (tag.equals("Manifest") && XMLSignature.XMLNS.equals(namespace)) {
content.add(new DOMManifest(childElem, context, provider));
- continue;
} else if (tag.equals("SignatureProperties") && XMLSignature.XMLNS.equals(namespace)) {
content.add(new DOMSignatureProperties(childElem));
- continue;
} else if (tag.equals("X509Data") && XMLSignature.XMLNS.equals(namespace)) {
content.add(new DOMX509Data(childElem));
- continue;
+ } else {
+ //@@@FIXME: check for other dsig structures
+ content.add(new javax.xml.crypto.dom.DOMStructure(firstChild));
}
- //@@@FIXME: check for other dsig structures
+ } else {
+ content.add(new javax.xml.crypto.dom.DOMStructure(firstChild));
}
- content.add(new javax.xml.crypto.dom.DOMStructure(child));
+ firstChild = firstChild.getNextSibling();
}
// Here we capture namespace declarations, so that when they're marshalled back
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/KeyInfo.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/KeyInfo.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/KeyInfo.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/KeyInfo.java Fri Jun 13 11:20:43 2014
@@ -55,7 +55,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* This class stand for KeyInfo Element that may contain keys, names,
@@ -474,21 +473,19 @@ public class KeyInfo extends SignatureEl
*/
public int lengthUnknownElement() {
int res = 0;
- NodeList nl = getElement().getChildNodes();
-
- for (int i = 0; i < nl.getLength(); i++) {
- Node current = nl.item(i);
-
+ Node childNode = getElement().getFirstChild();
+ while (childNode != null) {
/**
* $todo$ using this method, we don't see unknown Elements
* from Signature NS; revisit
*/
- if (current.getNodeType() == Node.ELEMENT_NODE
- && current.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE
+ && childNode.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
res++;
}
+ childNode = childNode.getNextSibling();
}
-
+
return res;
}
@@ -687,24 +684,22 @@ public class KeyInfo extends SignatureEl
* @return the element number of the unknown elements
*/
public Element itemUnknownElement(int i) {
- NodeList nl = getElement().getChildNodes();
int res = 0;
-
- for (int j = 0; j < nl.getLength(); j++) {
- Node current = nl.item(j);
-
+ Node childNode = getElement().getFirstChild();
+ while (childNode != null) {
/**
* $todo$ using this method, we don't see unknown Elements
* from Signature NS; revisit
*/
- if (current.getNodeType() == Node.ELEMENT_NODE
- && current.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE
+ && childNode.getNamespaceURI().equals(Constants.SignatureSpecNS)) {
res++;
if (res == i) {
- return (Element) current;
+ return (Element) childNode;
}
}
+ childNode = childNode.getNextSibling();
}
return null;
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/signature/XMLSignature.java Fri Jun 13 11:20:43 2014
@@ -48,7 +48,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
/**
@@ -428,13 +427,11 @@ public final class XMLSignature extends
objectElem.setIdAttributeNode(objectAttr, true);
}
- NodeList nodes = objectElem.getChildNodes();
- int length = nodes.getLength();
+ Node firstChild = objectElem.getFirstChild();
// Register Ids of the Object child elements
- for (int i = 0; i < length; i++) {
- Node child = nodes.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element childElem = (Element)child;
+ while (firstChild != null) {
+ if (firstChild.getNodeType() == Node.ELEMENT_NODE) {
+ Element childElem = (Element)firstChild;
String tag = childElem.getLocalName();
if (tag.equals("Manifest")) {
new Manifest(childElem, baseURI);
@@ -442,6 +439,7 @@ public final class XMLSignature extends
new SignatureProperties(childElem, baseURI);
}
}
+ firstChild = firstChild.getNextSibling();
}
objectElem = XMLUtils.getNextElement(objectElem.getNextSibling());
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/AbstractOutputProcessor.java Fri Jun 13 11:20:43 2014
@@ -41,7 +41,6 @@ import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
/**
@@ -286,9 +285,8 @@ public abstract class AbstractOutputProc
QName elementName = new QName(element.getNamespaceURI(), element.getLocalName(), element.getPrefix());
createStartElementAndOutputAsEvent(outputProcessorChain, elementName, namespaces, attributes);
- NodeList childNodes = element.getChildNodes();
- for (int i = 0; i < childNodes.getLength(); i++) {
- Node childNode = childNodes.item(i);
+ Node childNode = element.getFirstChild();
+ while (childNode != null) {
switch (childNode.getNodeType()) {
case Node.ELEMENT_NODE:
outputDOMElement((Element) childNode, outputProcessorChain);
@@ -297,6 +295,7 @@ public abstract class AbstractOutputProc
createCharactersAndOutputAsEvent(outputProcessorChain, ((Text) childNode).getData());
break;
}
+ childNode = childNode.getNextSibling();
}
createEndElementAndOutputAsEvent(outputProcessorChain, elementName);
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/implementations/TransformXPath.java Fri Jun 13 11:20:43 2014
@@ -92,7 +92,7 @@ public class TransformXPath extends Tran
throw new TransformationException("xml.WrongContent", exArgs);
}
- Node xpathnode = xpathElement.getChildNodes().item(0);
+ Node xpathnode = xpathElement.getFirstChild();
String str = XMLUtils.getStrFromNode(xpathnode);
input.setNeedsToBeExpanded(needsCircumvent(str));
if (xpathnode == null) {
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer.java Fri Jun 13 11:20:43 2014
@@ -250,14 +250,12 @@ public class XPath2FilterContainer exten
* @return the first Text node which contains information from the XPath 2 Filter String
*/
public Node getXPathFilterTextNode() {
-
- NodeList children = getElement().getChildNodes();
- int length = children.getLength();
-
- for (int i = 0; i < length; i++) {
- if (children.item(i).getNodeType() == Node.TEXT_NODE) {
- return children.item(i);
+ Node childNode = getElement().getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.TEXT_NODE) {
+ return childNode;
}
+ childNode = childNode.getNextSibling();
}
return null;
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPath2FilterContainer04.java Fri Jun 13 11:20:43 2014
@@ -24,7 +24,6 @@ import org.apache.xml.security.utils.Ele
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* Implements the parameters for the <A
@@ -218,13 +217,12 @@ public class XPath2FilterContainer04 ext
* @return the first Text node which contains information from the XPath 2 Filter String
*/
public Node getXPathFilterTextNode() {
- NodeList children = getElement().getChildNodes();
- int length = children.getLength();
-
- for (int i = 0; i < length; i++) {
- if (children.item(i).getNodeType() == Node.TEXT_NODE) {
- return children.item(i);
+ Node childNode = getElement().getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.TEXT_NODE) {
+ return childNode;
}
+ childNode = childNode.getNextSibling();
}
return null;
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/params/XPathContainer.java Fri Jun 13 11:20:43 2014
@@ -23,7 +23,7 @@ import org.apache.xml.security.transform
import org.apache.xml.security.utils.Constants;
import org.apache.xml.security.utils.SignatureElementProxy;
import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
import org.w3c.dom.Text;
/**
@@ -50,12 +50,11 @@ public class XPathContainer extends Sign
* @param xpath
*/
public void setXPath(String xpath) {
- if (getElement().getChildNodes() != null) {
- NodeList nl = getElement().getChildNodes();
-
- for (int i = 0; i < nl.getLength(); i++) {
- getElement().removeChild(nl.item(i));
- }
+ Node childNode = getElement().getFirstChild();
+ while (childNode != null) {
+ Node nodeToBeRemoved = childNode;
+ childNode = childNode.getNextSibling();
+ getElement().removeChild(nodeToBeRemoved);
}
Text xpathText = createText(xpath);
Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/dom/signature/InvalidKeyTest.java Fri Jun 13 11:20:43 2014
@@ -77,10 +77,9 @@ public class InvalidKeyTest extends org.
((Element)assertion).setIdAttributeNode(attr, true);
}
- NodeList nl = assertion.getChildNodes();
- Element n = (Element)nl.item(nl.getLength()-1);
+ Element n = (Element)assertion.getLastChild();
- XMLSignature si = new XMLSignature(n,"");
+ XMLSignature si = new XMLSignature(n, "");
si.checkSignatureValue(pk);
// System.out.println("VALIDATION OK" );
Modified: santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java?rev=1602377&r1=1602376&r2=1602377&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java (original)
+++ santuario/xml-security-java/trunk/src/test/java/org/apache/xml/security/test/stax/signature/SignatureCreationTest.java Fri Jun 13 11:20:43 2014
@@ -92,14 +92,14 @@ public class SignatureCreationTest exten
XMLUtils.createDocumentBuilder(false).parse(new ByteArrayInputStream(baos.toByteArray()));
//first child element must be the dsig:Signature @see SANTUARIO-324:
- NodeList nodeList = document.getDocumentElement().getChildNodes();
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node child = nodeList.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)child;
+ Node childNode = document.getDocumentElement().getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element element = (Element)childNode;
Assert.assertEquals(element.getLocalName(), "Signature");
break;
}
+ childNode = childNode.getNextSibling();
}
// Verify using DOM
@@ -196,14 +196,14 @@ public class SignatureCreationTest exten
XMLUtils.createDocumentBuilder(false).parse(new ByteArrayInputStream(baos.toByteArray()));
//first child element must be the dsig:Signature @see SANTUARIO-324:
- NodeList nodeList = document.getDocumentElement().getChildNodes();
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node child = nodeList.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)child;
+ Node childNode = document.getDocumentElement().getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element element = (Element)childNode;
Assert.assertEquals(element.getLocalName(), "Signature");
break;
}
+ childNode = childNode.getNextSibling();
}
// Verify using DOM
@@ -258,14 +258,14 @@ public class SignatureCreationTest exten
XMLUtils.createDocumentBuilder(false).parse(new ByteArrayInputStream(baos.toByteArray()));
//first child element must be the dsig:Signature @see SANTUARIO-324:
- NodeList nodeList = document.getDocumentElement().getChildNodes();
- for (int i = 0; i < nodeList.getLength(); i++) {
- Node child = nodeList.item(i);
- if (child.getNodeType() == Node.ELEMENT_NODE) {
- Element element = (Element)child;
+ Node childNode = document.getDocumentElement().getFirstChild();
+ while (childNode != null) {
+ if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element element = (Element)childNode;
Assert.assertEquals(element.getLocalName(), "Signature");
break;
}
+ childNode = childNode.getNextSibling();
}
// Verify using DOM