Author: hiranya
Date: Wed Apr 20 11:33:20 2011
New Revision: 1095369

URL: http://svn.apache.org/viewvc?rev=1095369&view=rev
Log:
Fixing an issue with cloning SOAP infosets - See the discussion on synapse-dev

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/CloneMediatorTest.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java?rev=1095369&r1=1095368&r2=1095369&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
 Wed Apr 20 11:33:20 2011
@@ -243,7 +243,9 @@ public class MessageHelper {
         if (envelope.getHeader() != null) {
             Iterator itr = envelope.getHeader().cloneOMElement().getChildren();
             while (itr.hasNext()) {
-                newEnvelope.getHeader().addChild((OMNode) itr.next());
+                OMNode node = (OMNode) itr.next();
+                itr.remove();
+                newEnvelope.getHeader().addChild(node);
             }
         }
 
@@ -256,7 +258,9 @@ public class MessageHelper {
             } else {
                 Iterator itr = 
envelope.getBody().cloneOMElement().getChildren();
                 while (itr.hasNext()) {
-                    newEnvelope.getBody().addChild((OMNode) itr.next());
+                    OMNode node = (OMNode) itr.next();
+                    itr.remove();
+                    newEnvelope.getBody().addChild(node);
                 }
             }
         }

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/CloneMediatorTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/CloneMediatorTest.java?rev=1095369&r1=1095368&r2=1095369&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/CloneMediatorTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/CloneMediatorTest.java
 Wed Apr 20 11:33:20 2011
@@ -40,7 +40,7 @@ public class CloneMediatorTest extends A
         fac = null;
     }
 
-    public void testClonningScenarioOne() throws Exception {
+    public void testCloningScenarioOne() throws Exception {
         Mediator clone = fac.createMediator(createOMElement("<clone " +
             "xmlns=\"http://ws.apache.org/ns/synapse\";><target 
soapAction=\"urn:clone\" " +
             "sequence=\"seqRef\"/><target 
to=\"http://test\";><sequence><sequence " +
@@ -60,7 +60,7 @@ public class CloneMediatorTest extends A
         }
     }
 
-    public void testClonningWithContinueParent() throws Exception {
+    public void testCloningWithContinueParent() throws Exception {
         Mediator clone = fac.createMediator(createOMElement("<clone 
continueParent=\"true\" " +
             "xmlns=\"http://ws.apache.org/ns/synapse\";><target 
soapAction=\"urn:clone\" " +
             "sequence=\"seqRef\"/><target 
to=\"http://test\";><sequence><sequence " +


Reply via email to