You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mi...@apache.org on 2009/09/10 19:06:06 UTC

svn commit: r813516 - /ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEWSProcess.java

Author: midon
Date: Thu Sep 10 17:06:06 2009
New Revision: 813516

URL: http://svn.apache.org/viewvc?rev=813516&view=rev
Log:
ODE-568: deactivate endpoints only if the process is active

Modified:
    ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEWSProcess.java

Modified: ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEWSProcess.java
URL: http://svn.apache.org/viewvc/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEWSProcess.java?rev=813516&r1=813515&r2=813516&view=diff
==============================================================================
--- ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEWSProcess.java (original)
+++ ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/ODEWSProcess.java Thu Sep 10 17:06:06 2009
@@ -93,22 +93,27 @@
     }
 
     void deactivate() {
-        // Deactivate all the my-role endpoints.
-        for (Endpoint endpoint : _myEprs.keySet()) {
-            // Deactivate the EPR only if there are no more references
-            // to this endpoint from any (active) BPEL process.
-            if (isShareable(endpoint)) {
-                __log.debug("deactivating shared endpoint " + endpoint);
-                if (!_sharedEps.decrementReferenceCount(endpoint)) {
+        // the BindingContext contains only the endpoints for the latest process version
+        if (org.apache.ode.bpel.iapi.ProcessState.ACTIVE.equals(_pconf.getState())) {
+            // Deactivate all the my-role endpoints.
+            for (Endpoint endpoint : _myEprs.keySet()) {
+                // Deactivate the EPR only if there are no more references
+                // to this endpoint from any (active) BPEL process.
+                if (isShareable(endpoint)) {
+                    __log.debug("deactivating shared endpoint " + endpoint);
+                    if (!_sharedEps.decrementReferenceCount(endpoint)) {
+                        _contexts.bindingContext.deactivateMyRoleEndpoint(endpoint);
+                        _sharedEps.removeEndpoint(endpoint);
+                    }
+                } else {
+                    __log.debug("deactivating non-shared endpoint " + endpoint);
                     _contexts.bindingContext.deactivateMyRoleEndpoint(endpoint);
-                    _sharedEps.removeEndpoint(endpoint);
                 }
-            } else {
-                __log.debug("deactivating non-shared endpoint " + endpoint);
-                _contexts.bindingContext.deactivateMyRoleEndpoint(endpoint);
             }
+            // TODO Deactivate all the partner-role channels
+        } else {
+            if (__log.isDebugEnabled()) __log.debug("pid " + _pid + " is not ACTIVE, no endpoints to deactivate");
         }
-        // TODO Deactivate all the partner-role channels
     }
 
     /**