You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2008/09/08 11:37:05 UTC

svn commit: r693037 - /tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java

Author: antelder
Date: Mon Sep  8 02:37:03 2008
New Revision: 693037

URL: http://svn.apache.org/viewvc?rev=693037&view=rev
Log:
Temporary work around for TUSCANY-2586 to prevent the pass-by-value interceptor being used

Modified:
    tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java

Modified: tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java?rev=693037&r1=693036&r2=693037&view=diff
==============================================================================
--- tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java (original)
+++ tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java Mon Sep  8 02:37:03 2008
@@ -154,7 +154,7 @@
             } else {
                 // assume pass-by-values copies are required if interfaces are remotable and there is no data binding
                 // transformation, i.e. a transformation will result in a copy so another pass-by-value copy is unnecessary
-                if (isRemotable(chain, sourceOperation, targetOperation)) {
+                if (!isOnMessage(targetOperation) && isRemotable(chain, sourceOperation, targetOperation)) {
                     interceptor =
                         new PassByValueInterceptor(dataBindings, faultExceptionMapper, chain, targetOperation);
                 }
@@ -170,6 +170,15 @@
     }
 
     /**
+     * FIXME: TUSCANY-2586, temporary work around till the JIRA is fixed to prevent
+     *  the PassByValueInterceptor being used for services when the binding protocol
+     *  doesn't need the copies done. 
+     */
+    protected boolean isOnMessage(Operation op) {
+        return "onMessage".equals(op.getName());
+    }
+
+    /**
      * Pass-by-value copies are required if the interfaces are remotable unless the
      * implementation uses the @AllowsPassByReference annotation.
      */