Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.0
-
None
-
ServiceMix 3.3
Description
Setting initializePartnerLink="no" on a partnerLink with a partnerRole should indicate to the engine that this partnerLink's endpoint reference will be set through the execution of the process (via an assign) as opposed to configured by the deployer. It appears that ODE doesn't support this.
1. create a BPEL with a scope that has a partner link declared
2. use an assign activity to set the endpoint reference for this partner link
3 have an invoke activity that uses this partner link
4. create a deploy.xml for the BPEL but omit the scope's partner link
5. deploy to service mix
6. see stacktrace:
Caused by: java.lang.IllegalArgumentException: ResourceManagerPartnerLinkType must be bound to an endpoint in deloy.xml
at org.apache.ode.bpel.engine.ODEProcess.setRoles(ODEProcess.java:675)
at org.apache.ode.bpel.engine.ODEProcess.access$1000(ODEProcess.java:101)
at org.apache.ode.bpel.engine.ODEProcess$HydrationLatch.doHydrate(ODEProcess.java:1250)
at org.apache.ode.bpel.engine.ODEProcess$HydrationLatch.access$200(ODEProcess.java:1215)
at org.apache.ode.bpel.engine.ODEProcess$HydrationLatch$2.run(ODEProcess.java:1226)
at org.apache.ode.bpel.engine.NStateLatch.latch(NStateLatch.java:89)
at org.apache.ode.bpel.engine.ODEProcess.hydrate(ODEProcess.java:847)
at org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:383)
at org.apache.ode.jbi.OdeServiceUnit.start(OdeServiceUnit.java:104)
at org.apache.ode.jbi.OdeSUManager.start(OdeSUManager.java:115)
... 10 more
from ODEProcess.java lines 672-678:
if (pl.hasPartnerRole())
{ Endpoint endpoint = _pconf.getInvokeEndpoints().get(pl.getName()); if (endpoint == null) throw new IllegalArgumentException(pl.getName() + " must be bound to an endpoint in deloy.xml"); PartnerLinkPartnerRoleImpl partnerRole = new PartnerLinkPartnerRoleImpl(this, pl, endpoint); _partnerRoles.put(pl, partnerRole); }Seems like the null check on the endpoint should not be done if the initializePartnerRole=no.