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 {