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.
      */


Reply via email to