Author: veithen
Date: Sat Oct 30 11:53:39 2010
New Revision: 1029034

URL: http://svn.apache.org/viewvc?rev=1029034&view=rev
Log:
AXIS2-4868: Fixed a couple of issues in SOAPElementImpl related to text nodes.

Modified:
    
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
    
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
    
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java

Modified: 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?rev=1029034&r1=1029033&r2=1029034&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
 Sat Oct 30 11:53:39 2010
@@ -237,7 +237,7 @@ public class SOAPElementImpl extends Nod
         //TODO: May need to address the situation where the prev sibling of 
the textnode itself is a textnode
         Text textNode = getOwnerDocument().createTextNode(text);
         NodeImpl node = ((NodeImpl)element.appendChild(textNode));
-        TextImplEx saajTextNode = new TextImplEx(text, this);
+        TextImplEx saajTextNode = new TextImplEx((TextImpl)textNode, this);
         node.setUserData(SAAJ_NODE, saajTextNode, null);
         return this;
     }
@@ -867,7 +867,7 @@ public class SOAPElementImpl extends Nod
         if (oldChild instanceof SOAPElementImpl) {
             oldChild = ((SOAPElementImpl)oldChild).getElement();
         } else if (oldChild instanceof TextImplEx) {
-            // TODO: handle text nodes somehow
+            oldChild = ((TextImplEx)oldChild).getTextNode();
         }
         return element.removeChild(oldChild);
     }

Modified: 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java?rev=1029034&r1=1029033&r2=1029034&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
 Sat Oct 30 11:53:39 2010
@@ -44,6 +44,12 @@ public class TextImplEx extends NodeImpl
         this.parentElement = parent;
     }
 
+    public TextImplEx(TextImpl textNode, SOAPElement parent) {
+        super(((SOAPElementImpl)parent).getOMFactory());
+        this.textNode = textNode;
+        this.parentElement = parent;
+    }
+
     public TextImplEx(String data, SOAPElement parent,
                       org.w3c.dom.Node prevSibling, org.w3c.dom.Node 
nextSibling) {
         super(((SOAPElementImpl)parent).getOMFactory());
@@ -53,6 +59,10 @@ public class TextImplEx extends NodeImpl
         this.nextSibling = nextSibling;
     }
 
+    TextImpl getTextNode() {
+        return textNode;
+    }
+    
     public void setNextSibling(org.w3c.dom.Node nextSibling) {
         this.nextSibling = nextSibling;
     }

Modified: 
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?rev=1029034&r1=1029033&r2=1029034&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
 Sat Oct 30 11:53:39 2010
@@ -31,6 +31,7 @@ import javax.xml.soap.MessageFactory;
 import javax.xml.soap.Name;
 import javax.xml.soap.Node;
 import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
 import javax.xml.soap.SOAPConstants;
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPEnvelope;
@@ -781,4 +782,14 @@ public class SOAPElementTest extends Ass
         
         assertFalse(soapBody.getChildElements().hasNext());
     }
+    
+    @Validated @Test
+    public void testAddRemoveTextNode() throws Exception {
+        MessageFactory mf = MessageFactory.newInstance();
+        SOAPMessage msg = mf.createMessage();
+        SOAPBody body = msg.getSOAPBody();
+        SOAPBodyElement bodyChild = body.addBodyElement(new 
QName("TestChild"));
+        bodyChild.addTextNode("aaaaa");
+        bodyChild.removeChild(bodyChild.getFirstChild());
+    }
 }


Reply via email to