Author: kwright
Date: Tue Nov 26 10:57:55 2013
New Revision: 1545611

URL: http://svn.apache.org/r1545611
Log:
Allow a path to recover from lock clean

Modified:
    
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
    
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperLockManager.java

Modified: 
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java?rev=1545611&r1=1545610&r2=1545611&view=diff
==============================================================================
--- 
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
 (original)
+++ 
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/BaseLockManager.java
 Tue Nov 26 10:57:55 2013
@@ -141,7 +141,13 @@ public class BaseLockManager implements 
       if (cleanup != null)
       {
         if (i == 0)
+        {
+          // If we could count on locks never being cleaned up, clusterInit()
+          // would be sufficient here.  But then there's no way to recover from
+          // a lock clean.
+          cleanup.cleanUpAllServices();
           cleanup.clusterInit();
+        }
         else if (foundService && foundActiveService)
           cleanup.cleanUpService(serviceName);
         else if (!foundActiveService)

Modified: 
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperLockManager.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperLockManager.java?rev=1545611&r1=1545610&r2=1545611&view=diff
==============================================================================
--- 
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperLockManager.java
 (original)
+++ 
manifoldcf/branches/CONNECTORS-781/framework/core/src/main/java/org/apache/manifoldcf/core/lockmanager/ZooKeeperLockManager.java
 Tue Nov 26 10:57:55 2013
@@ -140,7 +140,13 @@ public class ZooKeeperLockManager extend
           if (cleanup != null)
           {
             if (children.size() == 0)
+            {
+              // If we could count on locks never being cleaned up, 
clusterInit()
+              // would be sufficient here.  But then there's no way to recover 
from
+              // a lock clean.
+              cleanup.cleanUpAllServices();
               cleanup.clusterInit();
+            }
             else if (foundService && foundActiveService)
               cleanup.cleanUpService(serviceName);
             else if (!foundActiveService)


Reply via email to