curator-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From randg...@apache.org
Subject [6/9] git commit: Background operations were not checking if the client was connected. Further, the connection timeout was not being respected as it is in foreground operations
Date Sun, 10 Nov 2013 02:49:49 GMT
Background operations were not checking if the client was connected. Further, the connection
timeout was not being respected as it is in foreground operations


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/9299e9bb
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/9299e9bb
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/9299e9bb

Branch: refs/heads/master
Commit: 9299e9bbf889470dae8b7c14956a23f73e8097db
Parents: 28b63b0
Author: randgalt <randgalt@apache.org>
Authored: Sat Nov 9 18:46:59 2013 -0800
Committer: randgalt <randgalt@apache.org>
Committed: Sat Nov 9 18:46:59 2013 -0800

----------------------------------------------------------------------
 .../framework/imps/CuratorFrameworkImpl.java        | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/9299e9bb/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
index 87353bf..d56c9a4 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/CuratorFrameworkImpl.java
@@ -50,6 +50,7 @@ import java.util.concurrent.DelayQueue;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
 public class CuratorFrameworkImpl implements CuratorFramework
@@ -669,7 +670,20 @@ public class CuratorFrameworkImpl implements CuratorFramework
     {
         try
         {
-            operationAndData.callPerformBackgroundOperation();
+            if ( client.isConnected() )
+            {
+                operationAndData.callPerformBackgroundOperation();
+            }
+            else
+            {
+                client.getZooKeeper();  // important - allow connection resets, timeouts,
etc. to occur
+                if ( operationAndData.getElapsedTimeMs() >= client.getConnectionTimeoutMs()
)
+                {
+                    throw new CuratorConnectionLossException();
+                }
+                operationAndData.sleepFor(1, TimeUnit.SECONDS);
+                queueOperation(operationAndData);
+            }
         }
         catch ( Throwable e )
         {


Mime
View raw message