axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aj...@apache.org
Subject svn commit: r265707 - /webservices/axis2/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMElementImpl.java
Date Thu, 01 Sep 2005 12:25:33 GMT
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;
 
     }



Mime
View raw message