summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2008-09-08 09:37:03 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2008-09-08 09:37:03 +0000
commit26cae1d95cff9026b58a583715907d1e7d716589 (patch)
tree9e57873f05c976fad951191b220f3d3c0117cafa /java
parent96fe78cf97d74bbe99b593ea14ecbe49b9940934 (diff)
Temporary work around for TUSCANY-2586 to prevent the pass-by-value interceptor being used
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@693037 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java b/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
index e5965db2c5..b41c7fb012 100644
--- a/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
+++ b/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
@@ -154,7 +154,7 @@ public class DataBindingRuntimeWireProcessor implements RuntimeWireProcessor {
} 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 @@ public class DataBindingRuntimeWireProcessor implements RuntimeWireProcessor {
}
/**
+ * 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.
*/