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