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();
+ }
}