[
https://issues.apache.org/jira/browse/TUSCANY-2186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Raymond Feng reassigned TUSCANY-2186:
-------------------------------------
Assignee: Raymond Feng
> @OneWay over binding.ws arguments not being serialized properly
> ---------------------------------------------------------------
>
> Key: TUSCANY-2186
> URL: https://issues.apache.org/jira/browse/TUSCANY-2186
> Project: Tuscany
> Issue Type: Bug
> Reporter: Lou Amodeo
> Assignee: Raymond Feng
>
> I am finding that @Oneway operations over binding.ws are not having method
> arguments marshalled properly apparently due to a change in the sequence of
> interceptors. Previously the NonBlockingInterceptor was being added after the
> DataTransformationInterceptor. The data transformation needs to occur prior
> to the thread switch to the non-blocking interceptor to allow Axiom to
> marshall the message payload before the thread switch.
> In the Tuscany revision level I have R634808 the
> DataBindingRuntimeWireProcessor does this:
> chain.addInterceptor(0, interceptor);
> In the past the index of 0 would have put the databinding interceptor at the
> front of the interceptor chain, ahead of the NonBlockingInterceptor (which
> has already been added at this point). However in this Tuscany revision the
> index is ignored and instead a new phase-based ordering mechanism is used.
> The above call to addInterceptor obviously wasn't changed yet at this level
> to replace the index with a phase. It has been changed in the trunk and now
> looks like this:
> String phase =
> (wire.getSource().getContract() instanceof ComponentReference) ?
> Phase.REFERENCE_INTERFACE
> : Phase.SERVICE_INTERFACE;
> chain.addInterceptor(phase, interceptor);
> RuntimeWireImpl is doing this to add the NonBlockingInterceptor:
> chain.addInterceptor(Phase.SERVICE_BINDING, new
> NonBlockingInterceptor(workScheduler));
> Here are the relevant phase definitions in PhaseManager:
> private final static String[] SYSTEM_SERVICE_PHASES =
> {Phase.SERVICE_BINDING, Phase.SERVICE_POLICY,
> Phase.SERVICE_INTERFACE, Phase.SERVICE};
> I assume this is an ordered list, so this means the NonBlockingInterceptor
> (phase SERVICE_BINDING) is before the DataBindingInterceptor (phase
> SERVICE_INTERFACE), which is still opposite of what we want to solve this
> problem.
> Thanks for your help!
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]