You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by is...@apache.org on 2016/11/06 15:01:33 UTC

svn commit: r1768346 - in /synapse/trunk/java/modules/core/src: main/java/org/apache/synapse/config/xml/ main/java/org/apache/synapse/mediators/builtin/ test/java/org/apache/synapse/mediators/builtin/

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);