[5/6] curator git commit: CURATOR-460 Abstraction of getUseSessionTimeoutMs and readability improvements
CURATOR-460 Abstraction of getUseSessionTimeoutMs and readability improvements Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/b6af8fda Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/b6af8fda Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/b6af8fda Branch: refs/heads/master Commit: b6af8fdabbb620d6f01ce9453efba1fe1ef60205 Parents: 9123e04 Author: javandoAuthored: Thu Apr 5 23:56:32 2018 -0300 Committer: javando Committed: Thu Apr 5 23:56:32 2018 -0300 -- .../framework/state/ConnectionStateManager.java | 24 1 file changed, 15 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/curator/blob/b6af8fda/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java -- diff --git a/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java b/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java index 609bfa0..b66ca7e 100644 --- a/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java +++ b/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java @@ -252,14 +252,14 @@ public class ConnectionStateManager implements Closeable try { -long localStartOfSuspendedEpoch; +int useSessionTimeoutMs; +long elapsedMs; + synchronized (this) { -localStartOfSuspendedEpoch = this.startOfSuspendedEpoch; +useSessionTimeoutMs = getUseSessionTimeoutMs(); +elapsedMs = this.startOfSuspendedEpoch == 0 ? useSessionTimeoutMs / 2 : System.currentTimeMillis() - this.startOfSuspendedEpoch; } -int lastNegotiatedSessionTimeoutMs = client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs(); -int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs; -useSessionTimeoutMs = sessionExpirationPercent > 0 && localStartOfSuspendedEpoch != 0 ? (useSessionTimeoutMs * sessionExpirationPercent) / 100 : useSessionTimeoutMs; -long elapsedMs = localStartOfSuspendedEpoch == 0 ? useSessionTimeoutMs / 2 : System.currentTimeMillis() - localStartOfSuspendedEpoch; + long pollMaxMs = useSessionTimeoutMs - elapsedMs; final ConnectionState newState = eventQueue.poll(pollMaxMs, TimeUnit.MILLISECONDS); @@ -305,9 +305,7 @@ public class ConnectionStateManager implements Closeable if ( (currentConnectionState == ConnectionState.SUSPENDED) && (startOfSuspendedEpoch != 0) ) { long elapsedMs = System.currentTimeMillis() - startOfSuspendedEpoch; -int lastNegotiatedSessionTimeoutMs = client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs(); -int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs; -useSessionTimeoutMs = (useSessionTimeoutMs * sessionExpirationPercent) / 100; +int useSessionTimeoutMs = getUseSessionTimeoutMs(); if ( elapsedMs >= useSessionTimeoutMs ) { log.warn(String.format("Session timeout has elapsed while SUSPENDED. Injecting a session expiration. Elapsed ms: %d. Adjusted session timeout ms: %d", elapsedMs, useSessionTimeoutMs)); @@ -340,4 +338,12 @@ public class ConnectionStateManager implements Closeable currentConnectionState = newConnectionState; startOfSuspendedEpoch = (currentConnectionState == ConnectionState.SUSPENDED) ? System.currentTimeMillis() : 0; } + +private synchronized int getUseSessionTimeoutMs() { +int lastNegotiatedSessionTimeoutMs = client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs(); +int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs; +useSessionTimeoutMs = sessionExpirationPercent > 0 && startOfSuspendedEpoch != 0 ? (useSessionTimeoutMs * sessionExpirationPercent) / 100 : useSessionTimeoutMs; +return useSessionTimeoutMs; +} + }
[5/6] curator git commit: CURATOR-460 Abstraction of getUseSessionTimeoutMs and readability improvements
CURATOR-460 Abstraction of getUseSessionTimeoutMs and readability improvements Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/b6af8fda Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/b6af8fda Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/b6af8fda Branch: refs/heads/CURATOR-460 Commit: b6af8fdabbb620d6f01ce9453efba1fe1ef60205 Parents: 9123e04 Author: javandoAuthored: Thu Apr 5 23:56:32 2018 -0300 Committer: javando Committed: Thu Apr 5 23:56:32 2018 -0300 -- .../framework/state/ConnectionStateManager.java | 24 1 file changed, 15 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/curator/blob/b6af8fda/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java -- diff --git a/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java b/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java index 609bfa0..b66ca7e 100644 --- a/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java +++ b/curator-framework/src/main/java/org/apache/curator/framework/state/ConnectionStateManager.java @@ -252,14 +252,14 @@ public class ConnectionStateManager implements Closeable try { -long localStartOfSuspendedEpoch; +int useSessionTimeoutMs; +long elapsedMs; + synchronized (this) { -localStartOfSuspendedEpoch = this.startOfSuspendedEpoch; +useSessionTimeoutMs = getUseSessionTimeoutMs(); +elapsedMs = this.startOfSuspendedEpoch == 0 ? useSessionTimeoutMs / 2 : System.currentTimeMillis() - this.startOfSuspendedEpoch; } -int lastNegotiatedSessionTimeoutMs = client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs(); -int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs; -useSessionTimeoutMs = sessionExpirationPercent > 0 && localStartOfSuspendedEpoch != 0 ? (useSessionTimeoutMs * sessionExpirationPercent) / 100 : useSessionTimeoutMs; -long elapsedMs = localStartOfSuspendedEpoch == 0 ? useSessionTimeoutMs / 2 : System.currentTimeMillis() - localStartOfSuspendedEpoch; + long pollMaxMs = useSessionTimeoutMs - elapsedMs; final ConnectionState newState = eventQueue.poll(pollMaxMs, TimeUnit.MILLISECONDS); @@ -305,9 +305,7 @@ public class ConnectionStateManager implements Closeable if ( (currentConnectionState == ConnectionState.SUSPENDED) && (startOfSuspendedEpoch != 0) ) { long elapsedMs = System.currentTimeMillis() - startOfSuspendedEpoch; -int lastNegotiatedSessionTimeoutMs = client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs(); -int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs; -useSessionTimeoutMs = (useSessionTimeoutMs * sessionExpirationPercent) / 100; +int useSessionTimeoutMs = getUseSessionTimeoutMs(); if ( elapsedMs >= useSessionTimeoutMs ) { log.warn(String.format("Session timeout has elapsed while SUSPENDED. Injecting a session expiration. Elapsed ms: %d. Adjusted session timeout ms: %d", elapsedMs, useSessionTimeoutMs)); @@ -340,4 +338,12 @@ public class ConnectionStateManager implements Closeable currentConnectionState = newConnectionState; startOfSuspendedEpoch = (currentConnectionState == ConnectionState.SUSPENDED) ? System.currentTimeMillis() : 0; } + +private synchronized int getUseSessionTimeoutMs() { +int lastNegotiatedSessionTimeoutMs = client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs(); +int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) ? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs; +useSessionTimeoutMs = sessionExpirationPercent > 0 && startOfSuspendedEpoch != 0 ? (useSessionTimeoutMs * sessionExpirationPercent) / 100 : useSessionTimeoutMs; +return useSessionTimeoutMs; +} + }