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 " +