[
https://issues.apache.org/jira/browse/ODE-518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674823#action_12674823
]
Karthick Sankarachary commented on ODE-518:
-------------------------------------------
A <partnerLink>'s initializePartnerRole attribute must be used only in the
context of the partnerRole's value, and should have no effect on the myRole's
value. The initialization of partner links has been modified to that effect
(please see revision 745688).
Caveat: Strictly speaking, if the initializePartnerRole attribute is set to
"no", then we must not initialize the EPR of the partnerRole (through BPEL
deployment descriptor properties). To enforce that restriction, we will most
likely need to change the process model to check for the existence of that
attribute, and that's a no-no. In the off chance that you set the
initializePartnerRole attribute to "no", and (inadvertently) specify an EPR
through a deployment property, but forget to assign an EPR to it in the BPEL
process (as you should), the server will simply accept the former value and
move forward.
> 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
> Assignee: Karthick Sankarachary
> Priority: Minor
> Fix For: 2.0
>
>
> 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.