diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-08 09:37:03 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-08 09:37:03 +0000 |
commit | 26cae1d95cff9026b58a583715907d1e7d716589 (patch) | |
tree | 9e57873f05c976fad951191b220f3d3c0117cafa /java/sca | |
parent | 96fe78cf97d74bbe99b593ea14ecbe49b9940934 (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/sca')
-rw-r--r-- | java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java | 11 |
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. */ |