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.

Reply via email to