Author: karthick
Date: Wed Jan 27 00:07:41 2010
New Revision: 903509

URL: http://svn.apache.org/viewvc?rev=903509&view=rev
Log:
Don't broadcast messages to retired processes

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

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BrokeredMyRoleMessageExchangeImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BrokeredMyRoleMessageExchangeImpl.java?rev=903509&r1=903508&r2=903509&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BrokeredMyRoleMessageExchangeImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BrokeredMyRoleMessageExchangeImpl.java
 Wed Jan 27 00:07:41 2010
@@ -25,11 +25,15 @@
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 
+import javax.wsdl.Operation;
+import javax.wsdl.PortType;
+
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.bpel.iapi.EndpointReference;
 import org.apache.ode.bpel.iapi.Message;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
+import org.apache.ode.bpel.iapi.ProcessState;
 
 
 /**
@@ -65,10 +69,13 @@
     public Future invoke(Message request) {
        Future myFuture = null;
         for (MyRoleMessageExchange subscriber : subscribers) {
-            Future theirFuture = subscriber.invoke(request);
-            if (subscriber == template) {
-               myFuture = theirFuture;
-            }
+               BpelProcess process = ((MyRoleMessageExchangeImpl) 
subscriber)._process;
+               if (process.getConf().getState() == ProcessState.ACTIVE) {
+                   Future theirFuture = subscriber.invoke(request);
+                   if (myFuture == null) {
+                       myFuture = theirFuture;
+                   }
+               }
         }
         return myFuture;
     }
@@ -116,4 +123,14 @@
                ((MyRoleMessageExchangeImpl) 
subscriber).setSubscriberCount(subscriberCount);
        }
     }
+    
+    @Override
+    public PortType getPortType() {
+       return template.getPortType();
+    }
+    
+    @Override
+    public Operation getOperation() {
+       return template.getOperation();
+    }
 }


Reply via email to