[java-xmltooling COMMIT] in /branches/REL_1: doc/RELEASE-NOTES.txt src/main/java/org/opensaml/xml/io/AbstractXMLObjec...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Mar 15 17:35:54 EDT 2013
Author: scantor
Date: Fri Mar 15 17:35:54 2013
New Revision: 800
URL: http://svn.shibboleth.net/view/java-xmltooling?rev=800&view=rev
Log:
JXT-87: Replace NodeList usage.
Modified:
branches/REL_1/doc/RELEASE-NOTES.txt
branches/REL_1/src/main/java/org/opensaml/xml/io/AbstractXMLObjectUnmarshaller.java
branches/REL_1/src/main/java/org/opensaml/xml/signature/AbstractSignableXMLObject.java
Modified: branches/REL_1/doc/RELEASE-NOTES.txt
URL: http://svn.shibboleth.net/view/java-xmltooling/branches/REL_1/doc/RELEASE-NOTES.txt?rev=800&r1=799&r2=800&view=diff
==============================================================================
--- branches/REL_1/doc/RELEASE-NOTES.txt (original)
+++ branches/REL_1/doc/RELEASE-NOTES.txt Fri Mar 15 17:35:54 2013
@@ -1,6 +1,7 @@
Changes in Release 1.4.0
=============================================
[JXT-24] - Support for CDATA content
+[JXT-87] - Code in AbstractSignableXMLObject etc unnecessarily calls NodeList which is thread-unsafe
[JXT-88] - AbstractXMLObject unnecessarily creates a new QName in getElementQName
[JXT-89] - AbstractXMLObjectUnmarshaller should check log level before *creating* QNames and logging
[JXT-93] - X509Util.determineEntityCertificate doesn't catch lower layer SecurityException
Modified: branches/REL_1/src/main/java/org/opensaml/xml/io/AbstractXMLObjectUnmarshaller.java
URL: http://svn.shibboleth.net/view/java-xmltooling/branches/REL_1/src/main/java/org/opensaml/xml/io/AbstractXMLObjectUnmarshaller.java?rev=800&r1=799&r2=800&view=diff
==============================================================================
--- branches/REL_1/src/main/java/org/opensaml/xml/io/AbstractXMLObjectUnmarshaller.java (original)
+++ branches/REL_1/src/main/java/org/opensaml/xml/io/AbstractXMLObjectUnmarshaller.java Fri Mar 15 17:35:54 2013
@@ -34,7 +34,6 @@
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;
/**
@@ -119,18 +118,19 @@
log.trace("Unmarshalling other child nodes of DOM Element {}", XMLHelper.getNodeQName(domElement));
}
- NodeList childNodes = domElement.getChildNodes();
- Node childNode;
- for (int i = 0; i < childNodes.getLength(); i++) {
- childNode = childNodes.item(i);
+ Node childNode = domElement.getFirstChild();
+ while (childNode != null) {
if (childNode.getNodeType() == Node.ATTRIBUTE_NODE) {
unmarshallAttribute(xmlObject, (Attr) childNode);
} else if (childNode.getNodeType() == Node.ELEMENT_NODE) {
unmarshallChildElement(xmlObject, (Element) childNode);
- } else if (childNode.getNodeType() == Node.TEXT_NODE || childNode.getNodeType() == Node.CDATA_SECTION_NODE) {
+ } else if (childNode.getNodeType() == Node.TEXT_NODE
+ || childNode.getNodeType() == Node.CDATA_SECTION_NODE) {
unmarshallTextContent(xmlObject, (Text) childNode);
}
+
+ childNode = childNode.getNextSibling();
}
xmlObject.setDOM(domElement);
Modified: branches/REL_1/src/main/java/org/opensaml/xml/signature/AbstractSignableXMLObject.java
URL: http://svn.shibboleth.net/view/java-xmltooling/branches/REL_1/src/main/java/org/opensaml/xml/signature/AbstractSignableXMLObject.java?rev=800&r1=799&r2=800&view=diff
==============================================================================
--- branches/REL_1/src/main/java/org/opensaml/xml/signature/AbstractSignableXMLObject.java (original)
+++ branches/REL_1/src/main/java/org/opensaml/xml/signature/AbstractSignableXMLObject.java Fri Mar 15 17:35:54 2013
@@ -19,20 +19,19 @@
import org.opensaml.xml.AbstractXMLObject;
import org.opensaml.xml.util.XMLConstants;
+import org.opensaml.xml.util.XMLHelper;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
/**
* Base for signable XMLObjects.
*/
public abstract class AbstractSignableXMLObject extends AbstractXMLObject implements SignableXMLObject {
- /** XMLSecSignatureImpl */
+ /** Signature object. */
private Signature signature;
/**
- * Constructor
+ * Constructor.
*
* @param namespaceURI the namespace the element is in
* @param elementLocalName the local name of the XML element this Object represents
@@ -49,19 +48,15 @@
if (domElement == null) {
return false;
}
+
- NodeList children = domElement.getChildNodes();
- Element childElement;
- for (int i = 0; i < children.getLength(); i++) {
- if (children.item(i).getNodeType() != Node.ELEMENT_NODE) {
- continue;
- }
-
- childElement = (Element) children.item(i);
- if (childElement.getNamespaceURI().equals(XMLConstants.XMLSIG_NS)
- && childElement.getLocalName().equals(Signature.DEFAULT_ELEMENT_LOCAL_NAME)) {
[... 11 lines stripped ...]
More information about the commits
mailing list