Simon Laws wrote:
Around line 155 of DataBindingRuntimeWireProcessor there is the code
// 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 (!isOnMessage(targetOperation) && isRemotable(chain,
sourceOperation, targetOperation)) {
interceptor =
new PassByValueInterceptor(dataBindings,
faultExceptionMapper, chain, targetOperation);
}
We should only be doing this if binding.sca is being used.
TUSCANY-2586 records this problem but there seems to be some question as
to the solution. Why can't we check here what type of binding is being
used? Iassuming that that approach was discounted.
Simon
>
It isn't safe to assume that all bindings other than binding.sca
force copies to be made. A user could write binding.foo that
works similarly to binding.sca in that it doesn't do copies on
local invocations.
The solution proposed in the discussion of TUSCANY-2586 solves
this problem by making every binding responsible for deciding
whether the copying needs to be done.
Simon