Author: mriou Date: Mon Jul 2 12:08:05 2007 New Revision: 552565 URL: http://svn.apache.org/viewvc?view=rev&rev=552565 Log: Only deactivating if no other process (version) need that endpoint anymore.
Modified: incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java Modified: incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java URL: http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java?view=diff&rev=552565&r1=552564&r2=552565 ============================================================================== --- incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java (original) +++ incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java Mon Jul 2 12:08:05 2007 @@ -48,10 +48,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.ObjectOutputStream; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Random; +import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; @@ -190,9 +187,17 @@ if (__log.isDebugEnabled()) __log.debug("Deactivating process " + p.getPID()); - p.deactivate(); - while (_serviceMap.values().remove(p)) - ; + Endpoint processEndpoint = null; + for (Map.Entry<Endpoint,BpelProcess> processEntry : _serviceMap.entrySet()) { + if (processEntry.getValue()._pid.equals(process)) { + _serviceMap.remove(processEntry.getKey()); + processEndpoint = processEntry.getKey(); + } + } + + // Only deactivating if no other process (version) need that endpoint anymore + if (_serviceMap.get(processEndpoint) == null) + p.deactivate(); } return p; }