Initialized endpoint is required by ODEProcess during deployment despite
initializePartnerRole="no"
----------------------------------------------------------------------------------------------------
Key: ODE-518
URL: https://issues.apache.org/jira/browse/ODE-518
Project: ODE
Issue Type: Bug
Components: Deployment
Affects Versions: 2.0
Environment: ServiceMix 3.3
Reporter: Mark Ford
Priority: Minor
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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.