Use the negotiated session timeout in checkTimeouts()

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

Branch: refs/heads/CURATOR-247
Commit: 667b1d2c7bd4b267585ae973dfff0f8b49f6b6ba
Parents: 72f7223
Author: randgalt <randg...@apache.org>
Authored: Mon Aug 31 19:48:12 2015 -0700
Committer: randgalt <randg...@apache.org>
Committed: Mon Aug 31 19:48:12 2015 -0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/curator/ConnectionState.java      | 6 ++++--
 .../apache/curator/connection/ConnectionHandlingPolicy.java    | 2 +-
 2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/667b1d2c/curator-client/src/main/java/org/apache/curator/ConnectionState.java
----------------------------------------------------------------------
diff --git 
a/curator-client/src/main/java/org/apache/curator/ConnectionState.java 
b/curator-client/src/main/java/org/apache/curator/ConnectionState.java
index f0996d8..eea2ce0 100644
--- a/curator-client/src/main/java/org/apache/curator/ConnectionState.java
+++ b/curator-client/src/main/java/org/apache/curator/ConnectionState.java
@@ -207,7 +207,9 @@ class ConnectionState implements Watcher, Closeable
                 return zooKeeper.hasNewConnectionString();
             }
         };
-        ConnectionHandlingPolicy.CheckTimeoutsResult result = 
connectionHandlingPolicy.checkTimeouts(hasNewConnectionString, 
connectionStartMs, sessionTimeoutMs, connectionTimeoutMs);
+        int lastNegotiatedSessionTimeoutMs = 
getLastNegotiatedSessionTimeoutMs();
+        int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? 
lastNegotiatedSessionTimeoutMs : sessionTimeoutMs;
+        ConnectionHandlingPolicy.CheckTimeoutsResult result = 
connectionHandlingPolicy.checkTimeouts(hasNewConnectionString, 
connectionStartMs, useSessionTimeoutMs, connectionTimeoutMs);
         switch ( result )
         {
             default:
@@ -227,7 +229,7 @@ class ConnectionState implements Watcher, Closeable
                 if ( 
!Boolean.getBoolean(DebugUtils.PROPERTY_DONT_LOG_CONNECTION_ISSUES) )
                 {
                     long elapsed = System.currentTimeMillis() - 
connectionStartMs;
-                    int maxTimeout = Math.max(sessionTimeoutMs, 
connectionTimeoutMs);
+                    int maxTimeout = Math.max(useSessionTimeoutMs, 
connectionTimeoutMs);
                     log.warn(String.format("Connection attempt unsuccessful 
after %d (greater than max timeout of %d). Resetting connection and trying 
again with a new connection.", elapsed, maxTimeout));
                 }
                 reset();

http://git-wip-us.apache.org/repos/asf/curator/blob/667b1d2c/curator-client/src/main/java/org/apache/curator/connection/ConnectionHandlingPolicy.java
----------------------------------------------------------------------
diff --git 
a/curator-client/src/main/java/org/apache/curator/connection/ConnectionHandlingPolicy.java
 
b/curator-client/src/main/java/org/apache/curator/connection/ConnectionHandlingPolicy.java
index 6cea67d..9b6b895 100644
--- 
a/curator-client/src/main/java/org/apache/curator/connection/ConnectionHandlingPolicy.java
+++ 
b/curator-client/src/main/java/org/apache/curator/connection/ConnectionHandlingPolicy.java
@@ -63,7 +63,7 @@ public interface ConnectionHandlingPolicy
      * @param hasNewConnectionString proc to call to check if there is a new 
connection string. Important: the internal state is cleared after
      *                               this is called so you MUST handle the new 
connection string if <tt>true</tt> is returned
      * @param connectionStartMs the epoch/ms time that the connection was 
first initiated
-     * @param sessionTimeoutMs the configured session timeout in milliseconds
+     * @param sessionTimeoutMs the configured/negotiated session timeout in 
milliseconds
      * @param connectionTimeoutMs the configured connection timeout in 
milliseconds
      * @return result
      * @throws Exception errors

Reply via email to