Fixing a bug where the retry logic wasn't working when the initial connection 
failed.  This could happen if one of the ZooKeeper server is down.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/a1a0eaef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/a1a0eaef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/a1a0eaef

Branch: refs/heads/0.1.5
Commit: a1a0eaefc6dea9d926bdcf64838842a70d5b1fca
Parents: c2bc98a
Author: Aaron McCurry <[email protected]>
Authored: Thu May 16 16:10:21 2013 -0400
Committer: Aaron McCurry <[email protected]>
Committed: Thu May 16 16:10:21 2013 -0400

----------------------------------------------------------------------
 .../org/apache/blur/zookeeper/ZooKeeperClient.java |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/a1a0eaef/src/blur-util/src/main/java/org/apache/blur/zookeeper/ZooKeeperClient.java
----------------------------------------------------------------------
diff --git 
a/src/blur-util/src/main/java/org/apache/blur/zookeeper/ZooKeeperClient.java 
b/src/blur-util/src/main/java/org/apache/blur/zookeeper/ZooKeeperClient.java
index 9996eb7..62ad5c7 100644
--- a/src/blur-util/src/main/java/org/apache/blur/zookeeper/ZooKeeperClient.java
+++ b/src/blur-util/src/main/java/org/apache/blur/zookeeper/ZooKeeperClient.java
@@ -34,24 +34,29 @@ import org.apache.zookeeper.data.Stat;
 public class ZooKeeperClient extends ZooKeeper {
 
   private static final Log LOG = LogFactory.getLog(ZooKeeperClient.class);
+  private final int internalSessionTimeout;
 
   public ZooKeeperClient(String connectString, int sessionTimeout, Watcher 
watcher) throws IOException {
     super(connectString, sessionTimeout, watcher);
+    internalSessionTimeout = sessionTimeout;
   }
 
   public ZooKeeperClient(String connectString, int sessionTimeout, Watcher 
watcher, boolean canBeReadOnly)
       throws IOException {
     super(connectString, sessionTimeout, watcher, canBeReadOnly);
+    internalSessionTimeout = sessionTimeout;
   }
 
   public ZooKeeperClient(String connectString, int sessionTimeout, Watcher 
watcher, long sessionId,
       byte[] sessionPasswd, boolean canBeReadOnly) throws IOException {
     super(connectString, sessionTimeout, watcher, sessionId, sessionPasswd, 
canBeReadOnly);
+    internalSessionTimeout = sessionTimeout;
   }
 
   public ZooKeeperClient(String connectString, int sessionTimeout, Watcher 
watcher, long sessionId, byte[] sessionPasswd)
       throws IOException {
     super(connectString, sessionTimeout, watcher, sessionId, sessionPasswd);
+    internalSessionTimeout = sessionTimeout;
   }
 
   static abstract class ZKExecutor<T> {
@@ -61,6 +66,9 @@ public class ZooKeeperClient extends ZooKeeper {
   public <T> T execute(ZKExecutor<T> executor) throws KeeperException, 
InterruptedException {
     final long timestmap = System.currentTimeMillis();
     int sessionTimeout = getSessionTimeout();
+    if (sessionTimeout == 0) {
+      sessionTimeout = internalSessionTimeout;
+    }
     while (true) {
       try {
         return executor.execute();

Reply via email to