Author: mriou
Date: Wed Nov 26 09:41:55 2008
New Revision: 720925

URL: http://svn.apache.org/viewvc?rev=720925&view=rev
Log:
ODE-432 One-way operation in pick activity leads to FaultException

Added:
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickProcess.bpel
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickService.wsdl
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/dealDeck.xml
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/deploy.xml
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickClub.xml
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickDiamond.xml
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickHeart.xml
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickSpade.xml
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test1.properties
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test2.properties
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test3.properties
Modified:
    
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OdeInternalInstance.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/PICK.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/RuntimeInstanceImpl.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OutstandingRequestManager.java
    ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/PICK.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
    
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v1/CoreBpelTest.java
    
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java

Modified: 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
 (original)
+++ 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
 Wed Nov 26 09:41:55 2008
@@ -45,4 +45,9 @@
     @Test public void testForEach() throws Throwable {
         go("/bpel/2.0/TestForEach");
     }
+    @Test public void testPickOneWay() throws Throwable {
+        // Test Flow with XPath10
+        go("/bpel/2.0/TestPickOneWay");
+    }
+    
 }

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickProcess.bpel
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickProcess.bpel?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickProcess.bpel 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickProcess.bpel 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process name="PickProcess" suppressJoinFailure="yes" exitOnStandardFault="no" 
+  xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+  xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
+  xmlns:srvns="http://www.stark.com/PickService";
+  xmlns:tns="http://www.stark.com/PickProcess";
+  targetNamespace="http://emcs/www.stark.com/PickProcess";>
+
+  <import importType="http://schemas.xmlsoap.org/wsdl/"; 
location="PickService.wsdl" namespace="http://www.stark.com/PickService"/>
+
+<partnerLinks>
+  <partnerLink name="IncomingLink" myRole="PickServiceProvider" 
partnerLinkType="srvns:PickServicePLT"/>
+</partnerLinks>
+
+<correlationSets>
+  <correlationSet name="CorrelationByDeck" properties="srvns:deck"/>
+</correlationSets>
+
+<variables>
+  <variable messageType="srvns:dealDeckRequest" name="deckRequest"/>
+  <variable messageType="srvns:pickSpadeRequest" name="spadeRequest"/>
+  <variable messageType="srvns:pickClubRequest" name="clubRequest"/>
+  <variable messageType="srvns:pickHeartRequest" name="heartRequest"/>
+  <variable messageType="srvns:pickDiamondRequest" name="diamondRequest"/>
+  <variable messageType="srvns:dealDeckResponse" name="deckResponse"/>
+  <variable messageType="srvns:pickSpadeResponse" name="spadeResponse"/>
+  <variable messageType="srvns:pickClubResponse" name="clubResponse"/>
+  <variable messageType="srvns:pickHeartResponse" name="heartResponse"/>
+  <!--
+  <variable messageType="srvns:pickDiamondResponse" name="diamondResponse"/>
+  -->
+</variables>
+
+<sequence name="DeckLoop">
+  <sequence name="initDeck">
+    <receive operation="dealDeck" partnerLink="IncomingLink" 
variable="deckRequest" createInstance="yes">
+      <correlations>
+        <correlation initiate="yes" set="CorrelationByDeck"/>
+         </correlations>
+    </receive>
+    <assign>
+      <copy>
+        <from><literal>
+          <dealDeckResponse 
xmlns="http://www.stark.com/PickService";><Deck/></dealDeckResponse>
+        </literal></from>
+        <to variable="deckResponse" part="parameters"/>
+      </copy>
+      <copy>
+        <from>bpel:getVariableProperty("deckRequest", "srvns:deck")</from>
+        <to>$deckResponse.parameters/srvns:Deck</to>
+      </copy>
+    </assign>
+    <reply operation="dealDeck" partnerLink="IncomingLink" 
variable="deckResponse"/>
+  </sequence>
+
+
+<while><condition>1 = 1</condition>
+  <sequence name="pickLoop">
+    <pick name="suitPicker">
+      <onMessage operation="pickSpade" partnerLink="IncomingLink" 
variable="spadeRequest">
+        <correlations>
+          <correlation initiate="no" set="CorrelationByDeck"/>
+        </correlations>
+        <sequence>
+        <assign>
+          <copy>
+            <from><literal>
+              <pickSpadeResponse 
xmlns="http://www.stark.com/PickService";><Deck/></pickSpadeResponse>
+            </literal></from>
+            <to variable="spadeResponse" part="parameters"/>
+          </copy>
+          <copy>
+            <from>bpel:getVariableProperty("spadeRequest", "srvns:deck")</from>
+            <to>$spadeResponse.parameters/srvns:Deck</to>
+          </copy>
+        </assign>
+        <reply operation="pickSpade" partnerLink="IncomingLink" 
variable="spadeResponse"/>
+        </sequence>
+      </onMessage>
+
+      <onMessage operation="pickClub" partnerLink="IncomingLink" 
variable="clubRequest">
+        <correlations>
+          <correlation initiate="no" set="CorrelationByDeck"/>
+        </correlations>
+        <sequence>
+        <assign>
+          <copy>
+            <from><literal>
+              <pickClubResponse 
xmlns="http://www.stark.com/PickService";><Deck/></pickClubResponse>
+            </literal></from>
+            <to variable="clubResponse" part="parameters"/>
+          </copy>
+          <copy>
+            <from>bpel:getVariableProperty("clubRequest", "srvns:deck")</from>
+            <to>$clubResponse.parameters/srvns:Deck</to>
+          </copy>
+        </assign>
+        <reply operation="pickClub" partnerLink="IncomingLink" 
variable="clubResponse"/>
+        </sequence>
+      </onMessage>
+
+      <onMessage operation="pickHeart" partnerLink="IncomingLink" 
variable="heartRequest">
+        <correlations>
+          <correlation initiate="no" set="CorrelationByDeck"/>
+        </correlations>
+        <sequence>
+        <assign>
+          <copy>
+            <from><literal>
+              <pickHeartResponse 
xmlns="http://www.stark.com/PickService";><Deck/></pickHeartResponse>
+            </literal></from>
+            <to variable="heartResponse" part="parameters"/>
+          </copy>
+          <copy>
+            <from>bpel:getVariableProperty("heartRequest", "srvns:deck")</from>
+            <to>$heartResponse.parameters/srvns:Deck</to>
+          </copy>
+        </assign>
+        <reply operation="pickHeart" partnerLink="IncomingLink" 
variable="heartResponse"/>
+        </sequence>
+      </onMessage>
+
+      <onMessage operation="pickDiamond" partnerLink="IncomingLink" 
variable="diamondRequest">
+        <correlations>
+          <correlation initiate="no" set="CorrelationByDeck"/>
+        </correlations>
+        <sequence>
+          <empty/>
+        <!--
+        <assign>
+          <copy>
+            <from><literal>
+              <pickDiamondResponse 
xmlns="http://www.stark.com/PickService";><Deck/></pickDiamondResponse>
+            </literal></from>
+            <to variable="diamondResponse" part="parameters"/>
+          </copy>
+          <copy>
+            <from>bpel:getVariableProperty("diamondRequest", 
"srvns:deck")</from>
+            <to>$diamondResponse.parameters/srvns:Deck</to>
+          </copy>
+        </assign>
+        <reply operation="pickDiamond" partnerLink="IncomingLink" 
variable="diamondResponse"/>
+        -->
+        </sequence>
+      </onMessage>
+    </pick>
+  </sequence>
+</while>
+</sequence>
+
+</process>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickService.wsdl
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickService.wsdl?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickService.wsdl 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/PickService.wsdl 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions
+  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
+  xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop";
+  xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
+  xmlns:tns="http://www.stark.com/PickService";
+  targetNamespace="http://www.stark.com/PickService";>
+
+<wsdl:types>
+  <xsd:schema targetNamespace="http://www.stark.com/PickService"; 
elementFormDefault="qualified">
+    <xsd:complexType name="DeckType">
+      <xsd:sequence>
+        <xsd:element name="Deck" type="xsd:token"/>
+      </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:element name="dealDeck" type="tns:DeckType"/>
+    <xsd:element name="dealDeckResponse" type="tns:DeckType"/>
+
+    <xsd:element name="pickSpade" type="tns:DeckType"/>
+    <xsd:element name="pickSpadeResponse" type="tns:DeckType"/>
+
+    <xsd:element name="pickClub" type="tns:DeckType"/>
+    <xsd:element name="pickClubResponse" type="tns:DeckType"/>
+
+    <xsd:element name="pickHeart" type="tns:DeckType"/>
+    <xsd:element name="pickHeartResponse" type="tns:DeckType"/>
+
+    <xsd:element name="pickDiamond" type="tns:DeckType"/>
+    <xsd:element name="pickDiamondResponse" type="tns:DeckType"/>
+  </xsd:schema>
+</wsdl:types>
+
+<wsdl:message name="dealDeckRequest">
+  <wsdl:part element="tns:dealDeck" name="parameters"/>
+</wsdl:message>
+<wsdl:message name="dealDeckResponse">
+  <wsdl:part element="tns:dealDeckResponse" name="parameters"/>
+</wsdl:message>
+
+<wsdl:message name="pickSpadeRequest">
+  <wsdl:part element="tns:pickSpade" name="parameters"/>
+</wsdl:message>
+<wsdl:message name="pickSpadeResponse">
+  <wsdl:part element="tns:pickSpadeResponse" name="parameters"/>
+</wsdl:message>
+
+<wsdl:message name="pickClubRequest">
+  <wsdl:part element="tns:pickClub" name="parameters"/>
+</wsdl:message>
+<wsdl:message name="pickClubResponse">
+  <wsdl:part element="tns:pickClubResponse" name="parameters"/>
+</wsdl:message>
+
+<wsdl:message name="pickHeartRequest">
+  <wsdl:part element="tns:pickHeart" name="parameters"/>
+</wsdl:message>
+<wsdl:message name="pickHeartResponse">
+  <wsdl:part element="tns:pickHeartResponse" name="parameters"/>
+</wsdl:message>
+
+<wsdl:message name="pickDiamondRequest">
+  <wsdl:part element="tns:pickDiamond" name="parameters"/>
+</wsdl:message>
+<!--
+<wsdl:message name="pickDiamondResponse">
+  <wsdl:part element="tns:pickDiamondResponse" name="parameters"/>
+</wsdl:message>
+-->
+
+<wsdl:portType name="PickService">
+  <wsdl:operation name="dealDeck">
+    <wsdl:input message="tns:dealDeckRequest"/>
+    <wsdl:output message="tns:dealDeckResponse"/>
+  </wsdl:operation>
+  <wsdl:operation name="pickSpade">
+    <wsdl:input message="tns:pickSpadeRequest"/>
+    <wsdl:output message="tns:pickSpadeResponse"/>
+  </wsdl:operation>
+  <wsdl:operation name="pickClub">
+    <wsdl:input message="tns:pickClubRequest"/>
+    <wsdl:output message="tns:pickClubResponse"/>
+  </wsdl:operation>
+  <wsdl:operation name="pickHeart">
+    <wsdl:input message="tns:pickHeartRequest"/>
+    <wsdl:output message="tns:pickHeartResponse"/>
+  </wsdl:operation>
+  <wsdl:operation name="pickDiamond">
+    <wsdl:input message="tns:pickDiamondRequest"/>
+    <!--
+    <wsdl:output message="tns:pickDiamondResponse"/>
+    -->
+  </wsdl:operation>
+</wsdl:portType>
+
+<wsdl:binding name="PickServiceSoapBinding" type="tns:PickService">
+  <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+  <wsdl:operation name="dealDeck">
+    <soap:operation soapAction="http://www.stark.com/PickService/dealDeck"/>
+    <wsdl:input> <soap:body parts="parameters" use="literal"/> </wsdl:input>
+    <wsdl:output> <soap:body parts="parameters" use="literal"/> </wsdl:output>
+  </wsdl:operation>
+  <wsdl:operation name="pickSpade">
+    <soap:operation soapAction="http://www.stark.com/PickService/pickSpade"/>
+    <wsdl:input> <soap:body parts="parameters" use="literal"/> </wsdl:input>
+    <wsdl:output> <soap:body parts="parameters" use="literal"/> </wsdl:output>
+  </wsdl:operation>
+  <wsdl:operation name="pickClub">
+    <soap:operation soapAction="http://www.stark.com/PickService/pickClub"/>
+    <wsdl:input> <soap:body parts="parameters" use="literal"/> </wsdl:input>
+    <wsdl:output> <soap:body parts="parameters" use="literal"/> </wsdl:output>
+  </wsdl:operation>
+  <wsdl:operation name="pickHeart">
+    <soap:operation soapAction="http://www.stark.com/PickService/pickHeart"/>
+    <wsdl:input> <soap:body parts="parameters" use="literal"/> </wsdl:input>
+    <wsdl:output> <soap:body parts="parameters" use="literal"/> </wsdl:output>
+  </wsdl:operation>
+  <wsdl:operation name="pickDiamond">
+    <soap:operation soapAction="http://www.stark.com/PickService/pickDiamond"/>
+    <wsdl:input> <soap:body parts="parameters" use="literal"/> </wsdl:input>
+    <!--
+    <wsdl:output> <soap:body parts="parameters" use="literal"/> </wsdl:output>
+    -->
+  </wsdl:operation>
+</wsdl:binding>
+
+<wsdl:service name="PickService">
+  <wsdl:port name="PickServiceSoapPort" binding="tns:PickServiceSoapBinding">
+    <soap:address location="http://localhost:8080/ode/processes/PickService"/>
+  </wsdl:port>
+</wsdl:service>
+
+<plnk:partnerLinkType name="PickServicePLT">
+  <plnk:role name="PickServiceProvider" portType="tns:PickService"/>
+</plnk:partnerLinkType>
+
+<vprop:property name="deck" type="xsd:token"/>
+<vprop:propertyAlias messageType="tns:dealDeckRequest" part="parameters" 
propertyName="tns:deck">
+  <vprop:query>tns:Deck</vprop:query>
+</vprop:propertyAlias>
+<vprop:propertyAlias messageType="tns:pickSpadeRequest" part="parameters" 
propertyName="tns:deck">
+  <vprop:query>tns:Deck</vprop:query>
+</vprop:propertyAlias>
+<vprop:propertyAlias messageType="tns:pickClubRequest" part="parameters" 
propertyName="tns:deck">
+  <vprop:query>tns:Deck</vprop:query>
+</vprop:propertyAlias>
+<vprop:propertyAlias messageType="tns:pickHeartRequest" part="parameters" 
propertyName="tns:deck">
+  <vprop:query>tns:Deck</vprop:query>
+</vprop:propertyAlias>
+<vprop:propertyAlias messageType="tns:pickDiamondRequest" part="parameters" 
propertyName="tns:deck">
+  <vprop:query>tns:Deck</vprop:query>
+</vprop:propertyAlias>
+
+</wsdl:definitions>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/dealDeck.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/dealDeck.xml?rev=720925&view=auto
==============================================================================
--- ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/dealDeck.xml 
(added)
+++ ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/dealDeck.xml 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,9 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:pic="http://www.stark.com/PickService";>
+   <soapenv:Header/>
+   <soapenv:Body>
+      <pic:dealDeck>
+         <pic:Deck>One</pic:Deck>
+      </pic:dealDeck>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/deploy.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/deploy.xml?rev=720925&view=auto
==============================================================================
--- ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/deploy.xml 
(added)
+++ ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/deploy.xml 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,11 @@
+<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03";
+       xmlns:srvns="http://www.stark.com/PickService";
+       xmlns:procns="http://emcs/www.stark.com/PickProcess";>
+
+       <process name="procns:PickProcess">
+               <provide partnerLink="IncomingLink">
+                       <service name="srvns:PickService" 
port="PickServiceSoapPort"/>
+               </provide>
+               <cleanup on="always"/>
+       </process>
+</deploy>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickClub.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickClub.xml?rev=720925&view=auto
==============================================================================
--- ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickClub.xml 
(added)
+++ ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickClub.xml 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,9 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:pic="http://www.stark.com/PickService";>
+   <soapenv:Header/>
+   <soapenv:Body>
+      <pic:pickClub>
+         <pic:Deck>One</pic:Deck>
+      </pic:pickClub>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickDiamond.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickDiamond.xml?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickDiamond.xml 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickDiamond.xml 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,9 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:pic="http://www.stark.com/PickService";>
+   <soapenv:Header/>
+   <soapenv:Body>
+      <pic:pickDiamond>
+         <pic:Deck>One</pic:Deck>
+      </pic:pickDiamond>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickHeart.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickHeart.xml?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickHeart.xml 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickHeart.xml 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,9 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:pic="http://www.stark.com/PickService";>
+   <soapenv:Header/>
+   <soapenv:Body>
+      <pic:pickHeart>
+         <pic:Deck>One</pic:Deck>
+      </pic:pickHeart>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickSpade.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickSpade.xml?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickSpade.xml 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/pickSpade.xml 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,9 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:pic="http://www.stark.com/PickService";>
+   <soapenv:Header/>
+   <soapenv:Body>
+      <pic:pickSpade>
+         <pic:Deck>One</pic:Deck>
+      </pic:pickSpade>
+   </soapenv:Body>
+</soapenv:Envelope>
+

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test1.properties
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test1.properties?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test1.properties 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test1.properties 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,22 @@
+#
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You under the Apache License, Version 2.0
+#    (the "License"); you may not use this file except in compliance with
+#    the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+
+namespace=http://www.stark.com/PickService
+service=PickService
+operation=dealDeck
+request1=<message><parameters><pic:dealDeck 
xmlns:pic="http://www.stark.com/PickService";><pic:Deck>One</pic:Deck></pic:dealDeck></parameters></message>
+response1=.*One.*
\ No newline at end of file

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test2.properties
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test2.properties?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test2.properties 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test2.properties 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,21 @@
+#
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You under the Apache License, Version 2.0
+#    (the "License"); you may not use this file except in compliance with
+#    the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+
+namespace=http://www.stark.com/PickService
+service=PickService
+operation=pickDiamond
+request1=<message><parameters><pic:pickDiamond 
xmlns:pic="http://www.stark.com/PickService";><pic:Deck>One</pic:Deck></pic:pickDiamond></parameters></message>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test3.properties
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test3.properties?rev=720925&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test3.properties 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestPickOneWay/test3.properties 
Wed Nov 26 09:41:55 2008
@@ -0,0 +1,22 @@
+#
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You under the Apache License, Version 2.0
+#    (the "License"); you may not use this file except in compliance with
+#    the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+
+namespace=http://www.stark.com/PickService
+service=PickService
+operation=pickClub
+request1=<message><parameters><pic:pickClub 
xmlns:pic="http://www.stark.com/PickService";><pic:Deck>One</pic:Deck></pic:pickClub></parameters></message>
+response1=.*One.*
\ No newline at end of file

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OdeInternalInstance.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OdeInternalInstance.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OdeInternalInstance.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/OdeInternalInstance.java
 Wed Nov 26 09:41:55 2008
@@ -74,6 +74,8 @@
     void select(PickResponseChannel pickResponseChannel, Date timeout, boolean 
createInstance, Selector[] selectors)
             throws FaultException;
 
+    void cancelOutstandingRequests(String channelId);
+
     CorrelationKey readCorrelation(CorrelationSetInstance cset);
 
     ExpressionLanguageRuntimeRegistry getExpLangRuntime();

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/PICK.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/PICK.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/PICK.java 
(original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/PICK.java Wed 
Nov 26 09:41:55 2008
@@ -258,6 +258,11 @@
                         dpe(_alarm.activity);
                     }
 
+                    if (_opick.onMessages.size() > 1 && 
onMessage.operation.getOutput() == null) {
+                        // Releasing other onMessage that could be two-ways 
with an oustanding request
+                        
getBpelRuntime().cancelOutstandingRequests(_pickResponseChannel.export());
+                    }
+
                     FaultData fault;
                     initVariable(mexId, onMessage);
                     try {

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/RuntimeInstanceImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/RuntimeInstanceImpl.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/RuntimeInstanceImpl.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/RuntimeInstanceImpl.java
 Wed Nov 26 09:41:55 2008
@@ -108,6 +108,10 @@
 
     }
 
+    public void cancelOutstandingRequests(String channelId) {
+        getORM().cancel(channelId);
+    }
+
     public void select(PickResponseChannel pickResponseChannel, Date timeout, 
boolean createInstance, Selector[] selectors)
             throws FaultException {
 

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
 Wed Nov 26 09:41:55 2008
@@ -71,6 +71,8 @@
 
     void unregisterActivityForRecovery(ActivityRecoveryChannel 
recoveryChannel);
 
+    void cancelOutstandingRequests(String channelId);
+
     void select(PickResponseChannel pickResponseChannel, Date timeout, boolean 
createInstance, Selector[] selectors)
             throws FaultException;
 

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OutstandingRequestManager.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OutstandingRequestManager.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OutstandingRequestManager.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OutstandingRequestManager.java
 Wed Nov 26 09:41:55 2008
@@ -119,7 +119,7 @@
 
         Entry entry = _byChannel.remove(pickResponseChannel);
         if (entry != null) {
-            _byRid.values().remove(entry);
+            while(_byRid.values().remove(entry));
         }
     }
 

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/PICK.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/PICK.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/PICK.java 
(original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/PICK.java Wed 
Nov 26 09:41:55 2008
@@ -261,6 +261,11 @@
                         dpe(_alarm.activity);
                     }
 
+                    if (_opick.onMessages.size() > 1 && 
onMessage.operation.getOutput() == null) {
+                        // Releasing other onMessage that could be two-ways 
with an oustanding request
+                        
getBpelRuntime().cancelOutstandingRequests(_pickResponseChannel.export());
+                    }
+                    
                     FaultData fault;
                     initVariable(mexId, onMessage);
                     try {

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
 Wed Nov 26 09:41:55 2008
@@ -105,7 +105,10 @@
 
     public void initializePartnerLinks(Long parentScopeId, 
Collection<OPartnerLink> partnerLinks) {
         _brc.initializePartnerLinks(parentScopeId, partnerLinks);
+    }
 
+    public void cancelOutstandingRequests(String channelId) {
+        getORM().cancel(channelId);
     }
 
     public void select(PickResponseChannel pickResponseChannel, Date timeout, 
boolean createInstance, Selector[] selectors)

Modified: 
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v1/CoreBpelTest.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v1/CoreBpelTest.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v1/CoreBpelTest.java 
(original)
+++ 
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v1/CoreBpelTest.java 
Wed Nov 26 09:41:55 2008
@@ -114,6 +114,9 @@
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
+    public void cancelOutstandingRequests(String channelId) {
+    }
+
     public void initializePartnerLinks(Long parentScopeId, 
Collection<OPartnerLink> partnerLinks) {
         //To change body of implemented methods use File | Settings | File 
Templates.
     }

Modified: 
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java?rev=720925&r1=720924&r2=720925&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java 
(original)
+++ 
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java 
Wed Nov 26 09:41:55 2008
@@ -116,6 +116,9 @@
         //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
+    public void cancelOutstandingRequests(String channelId) {
+    }
+
     public String invoke(String invokeId, PartnerLinkInstance instance, 
Operation operation, Element outboundMsg, Object object) throws FaultException {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }


Reply via email to