You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Mark Ford (JIRA)" <ji...@apache.org> on 2009/02/17 17:54:59 UTC

[jira] Created: (ODE-518) Initialized endpoint is required by ODEProcess during deployment despite initializePartnerRole="no"

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.


[jira] Assigned: (ODE-518) Initialized endpoint is required by ODEProcess during deployment despite initializePartnerRole="no"

Posted by "Alex Boisvert (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Boisvert reassigned ODE-518:
---------------------------------

    Assignee: Karthick Sankarachary

> 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
>
> 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.


[jira] Commented: (ODE-518) Initialized endpoint is required by ODEProcess during deployment despite initializePartnerRole="no"

Posted by "Karthick Sankarachary (JIRA)" <ji...@apache.org>.
    [ 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.


[jira] Resolved: (ODE-518) Initialized endpoint is required by ODEProcess during deployment despite initializePartnerRole="no"

Posted by "Karthick Sankarachary (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ODE-518?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Karthick Sankarachary resolved ODE-518.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0

> 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.


[jira] Commented: (ODE-518) Initialized endpoint is required by ODEProcess during deployment despite initializePartnerRole="no"

Posted by "Mark Ford (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674995#action_12674995 ] 

Mark Ford commented on ODE-518:
-------------------------------

The spec mandates that the engine must not initialize the partner link if the initializePartnerRole attribute is set to "no". Your scenario above where a user provided a value in the deploy.xml but had this attribute set to false and failed to initialize the partner link prior to use should result in a bpel:uninitializedPartnerRole as opposed to falling back to the value configured in the deploy.xml file. The spec is clear here that the engine must not provide an initialization and also what should happen if the process attempts to read or invoke a partner link that is not initialized.

My preference would be to adhere to the spec in the interest of portability and clarity.  


> 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.


[jira] Commented: (ODE-518) Initialized endpoint is required by ODEProcess during deployment despite initializePartnerRole="no"

Posted by "Lasse Engler (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ODE-518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12781158#action_12781158 ] 

Lasse Engler commented on ODE-518:
----------------------------------

This problem is back again.

It looks like your fix was lost when the restful branch was merged into the trunk.
(The old code has been moved to ODEWSProcess.)

> 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.