Author: isudana
Date: Sun Nov  6 15:01:33 2016
New Revision: 1768346

URL: http://svn.apache.org/viewvc?rev=1768346&view=rev
Log:
fix for SYNAPSE-1060

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyMediatorFactory.java
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/PropertyMediatorTest.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyMediatorFactory.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyMediatorFactory.java?rev=1768346&r1=1768345&r2=1768346&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyMediatorFactory.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/PropertyMediatorFactory.java
 Sun Nov  6 15:01:33 2016
@@ -81,7 +81,8 @@ public class PropertyMediatorFactory ext
         if (value != null) {
             propMediator.setValue(value.getAttributeValue(), dataType);
         } else if (valueElement != null) {
-            propMediator.setValueElement(valueElement);
+            propMediator.setValueElement(valueElement.cloneOMElement()); // 
Need to clone,
+            // otherwise same reference getting modified at the message flow
         } else if (expression != null) {
             try {
                 
propMediator.setExpression(SynapseXPathFactory.getSynapseXPath(elem, ATT_EXPRN),

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java?rev=1768346&r1=1768345&r2=1768346&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/PropertyMediator.java
 Sun Nov  6 15:01:33 2016
@@ -288,7 +288,8 @@ public class PropertyMediator extends Ab
         if (value != null) {
             return value;
         } else if (valueElement != null) {
-            return valueElement;
+            // Need to take a clone of the element, otherwise same reference 
is shared across all the requests
+            return valueElement.cloneOMElement();
         } else {
             return convertValue(expression.stringValueOf(synCtx), type);
         }

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/PropertyMediatorTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/PropertyMediatorTest.java?rev=1768346&r1=1768345&r2=1768346&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/PropertyMediatorTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/PropertyMediatorTest.java
 Sun Nov  6 15:01:33 2016
@@ -140,7 +140,7 @@ public class PropertyMediatorTest extend
         MessageContext synCtx = 
TestUtils.getTestContext("<getQuote><symbol>IBM</symbol></getQuote>");
         propMediatorOne.mediate(synCtx);
         Object prop = synCtx.getProperty("nameOne");
-        assertEquals(valueOne, prop);
+        assertEquals(valueOne.toString(), prop.toString()); // Objects are not 
equal, so need to compare the content
 
         // Test XML property retrieval
         String exprValue = new 
SynapseXPath("synapse:get-property('nameOne')").stringValueOf(synCtx);


Reply via email to