Author: rr
Date: Tue Apr 13 22:01:31 2010
New Revision: 933800

URL: http://svn.apache.org/viewvc?rev=933800&view=rev
Log:
ODE-571: Instance work done within newest process version after receiving 
request to a retired instance (fix)

Modified:
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java?rev=933800&r1=933799&r2=933800&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
 Tue Apr 13 22:01:31 2010
@@ -211,14 +211,15 @@ public class PartnerLinkMyRoleImpl exten
     public void invokeInstance(MyRoleMessageExchangeImpl mex, RoutingInfo 
routing) {
         Operation operation = getMyRoleOperation(mex.getOperationName());
         if (__log.isDebugEnabled()) {
-            __log.debug("INPUTMSG: " + routing.correlator.getCorrelatorId() + 
": ROUTING to instance "
+            __log.debug("INPUTMSG: " + routing.correlator.getCorrelatorId() + 
": ROUTING to existing instance "
                     + 
routing.messageRoute.getTargetInstance().getInstanceId());
         }
 
         ProcessInstanceDAO instanceDao = 
routing.messageRoute.getTargetInstance();
+       BpelProcess process2 = 
_process._engine._activeProcesses.get(instanceDao.getProcess().getProcessId());
 
         // Reload process instance for DAO.
-        BpelRuntimeContextImpl instance = 
_process.createRuntimeContext(instanceDao, null, null);
+        BpelRuntimeContextImpl instance = 
process2.createRuntimeContext(instanceDao, null, null);
         instance.inputMsgMatch(routing.messageRoute.getGroupId(), 
routing.messageRoute.getIndex(), mex);
 
         // Kill the route so some new message does not get routed to
@@ -226,16 +227,16 @@ public class PartnerLinkMyRoleImpl exten
         routing.correlator.removeRoutes(routing.messageRoute.getGroupId(), 
instanceDao);
 
         // send process instance event
-        CorrelationMatchEvent evt = new CorrelationMatchEvent(new 
QName(_process.getOProcess().targetNamespace,
-                _process.getOProcess().getName()), 
_process.getProcessDAO().getProcessId(),
+        CorrelationMatchEvent evt = new CorrelationMatchEvent(new 
QName(process2.getOProcess().targetNamespace,
+                       process2.getOProcess().getName()), 
process2.getProcessDAO().getProcessId(),
                 instanceDao.getInstanceId(), routing.matchedKeySet);
         evt.setPortType(mex.getPortType().getQName());
         evt.setOperation(operation.getName());
         evt.setMexId(mex.getMessageExchangeId());
 
-        _process._debugger.onEvent(evt);
+        process2._debugger.onEvent(evt);
         // store event
-        _process.saveEvent(evt, instanceDao);
+        process2.saveEvent(evt, instanceDao);
 
         
mex.setCorrelationStatus(MyRoleMessageExchange.CorrelationStatus.MATCHED);
         mex.getDAO().setInstance(routing.messageRoute.getTargetInstance());


Reply via email to