You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by aj...@apache.org on 2005/09/01 14:25:33 UTC

svn commit: r265707 - /webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java

Author: ajith
Date: Thu Sep  1 05:25:26 2005
New Revision: 265707

URL: http://svn.apache.org/viewcvs?rev=265707&view=rev
Log:
Fixing a hidden bug that might have survived all our test cases! In the addChild method the order of the statements is changed. Since the setting of the parent strips down all the links the setting of siblings should take place AFTER setting the parent.
This caused the iterators to act incorrectly

Modified:
    webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java

Modified: webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java?rev=265707&r1=265706&r2=265707&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java Thu Sep  1 05:25:26 2005
@@ -212,6 +212,13 @@
      * Method addChild
      */
     private void addChild(OMNodeImpl child) {
+        //the order of these statements is VERY important
+        //Since setting the parent has a detach method inside
+        //it strips down all the rerefences to siblings.
+        //setting the siblings should take place AFTER setting the parent
+
+        child.setParent(this);
+
         if (firstChild == null) {
             firstChild = child;
             child.setPreviousSibling(null);
@@ -219,8 +226,8 @@
             child.setPreviousSibling(lastChild);
             lastChild.setNextSibling(child);
         }
+
         child.setNextSibling(null);
-        child.setParent(this);
         lastChild = child;
 
     }