Hello friend,
I think I came across a bug in Tuscany 1.4. Please confirm, or
correct me if I'm wrong.
Regards,
Rupesh
REQUIREMENT & ERROR
My requirement is to invoke 2 different SCA components A and B
from an implementation.bpel.
I can invoke either A or B successfully.
When A is called after B, the Unable to register Synchronizer error comes.
Something goes wrong in the tuscany-ODE bridge.
I debugged, and my observation is as follows.
class --> org.apache.tuscany.sca.implementation.bpel.ode.
ODEExternalService
method --> public void invoke(final PartnerRoleMessageExchange
partnerRoleMessageExchange)
problem area --> RuntimeComponentReference runtimeComponentReference =
(RuntimeComponentReference)tuscanyRuntimeComponent.getReferences().get(0);
The index 0 is hardcoded. So only the first
reference is considered always.
Reason --> Since the first reference to the impl.bpel is invoked always,
either A or B works fine.
When I use both A and B, for all the messages, SCA reference A is invoked,
and ODE fails processing messages for B.
My trial --> I changed the index of the references collection to match the
incoming message type.
It worked, and I could call SCA components A and B from the impl.bpel.
Conclusion --> This could be a bug in Tuscany. Please confirm.
DISCLAIMER:
"The information in this e-mail and any attachment is intended only for
the person to whom it is addressed and may contain confidential and/or
privileged material. If you have received this e-mail in error, kindly
contact the sender and destroy all copies of the original communication.
IBS makes no warranty, express or implied, nor guarantees the accuracy,
adequacy or completeness of the information contained in this email or any
attachment and is not liable for any errors, defects, omissions, viruses
or for resultant loss or damage, if any, direct or indirect."