SYNAPSE-1109: copy wsa:From value when creating request context
diff --git a/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java b/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
index be5db21..9118875 100644
--- a/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
+++ b/modules/core/src/main/java/org/apache/synapse/util/MessageHelper.java
@@ -238,6 +238,7 @@
// do not copy options from the original
newMC.setConfigurationContext(ori.getConfigurationContext());
newMC.setMessageID(UIDGenerator.generateURNString());
+ newMC.setFrom(ori.getFrom());
newMC.setTo(ori.getTo());
newMC.setSoapAction(ori.getSoapAction());
diff --git a/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java b/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
index e0298e4..eadf01c 100755
--- a/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
+++ b/modules/core/src/test/java/org/apache/synapse/util/MessageHelperTest.java
@@ -47,4 +47,15 @@
assertNotNull(dh);
assertEquals("test", dh.getContent());
}
+
+ // Test for SYNAPSE-1109
+ public void testClonePartiallyWithFrom() throws Exception {
+ String fromValue = "uri://some-from-value";
+ MessageContext origMc = new MessageContext();
+ origMc.setFrom(fromValue);
+ MessageContext newMc = MessageHelper.clonePartially(origMc);
+ Object result = newMc.getFrom();
+ assertEquals(fromValue, result);
+ }
+
}