Author: veithen
Date: Sat Jun 11 11:44:40 2011
New Revision: 1134573

URL: http://svn.apache.org/viewvc?rev=1134573&view=rev
Log:
Fixed a problematic iterator usage in ParentNode.

Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java?rev=1134573&r1=1134572&r2=1134573&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
 Sat Jun 11 11:44:40 2011
@@ -403,7 +403,7 @@ public abstract class ParentNode extends
 
         Iterator children = this.getChildren();
         boolean found = false;
-        while (children.hasNext()) {
+        while (!found && children.hasNext()) {
             ChildNode tempNode = (ChildNode) children.next();
             if (tempNode.equals(oldChild)) {
                 if (newChild instanceof DocumentFragmentImpl) {

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java?rev=1134573&r1=1134572&r2=1134573&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/ElementImplTest.java
 Sat Jun 11 11:44:40 2011
@@ -93,6 +93,28 @@ public class ElementImplTest extends OME
         });
     }
     
+    public void testReplaceChild() throws Exception {
+        DOMTestUtil.execute(new DOMTestUtil.Test() {
+            public void execute(DocumentBuilderFactory dbf) throws Exception {
+                Document doc = dbf.newDocumentBuilder().newDocument();
+                Element parent = doc.createElementNS(null, "parent");
+                Element child1 = doc.createElementNS(null, "child1");
+                Element child2 = doc.createElementNS(null, "child2");
+                Element child3 = doc.createElementNS(null, "child3");
+                parent.appendChild(child1);
+                parent.appendChild(child2);
+                parent.appendChild(child3);
+                Element replacementChild = doc.createElementNS(null, 
"replacement");
+                parent.replaceChild(replacementChild, child2);
+                NodeList children = parent.getChildNodes();
+                assertEquals(3, children.getLength());
+                assertSame(child1, children.item(0));
+                assertSame(replacementChild, children.item(1));
+                assertSame(child3, children.item(2));
+            }
+        });
+    }
+    
     public void testRemoveSingleChild() throws Exception {
         DOMTestUtil.execute(new DOMTestUtil.Test() {
             public void execute(DocumentBuilderFactory dbf) throws Exception {


Reply via email to