[2/6] curator git commit: CURATOR-460 Synchronize access to startOfSuspendedEpoch

2018-04-11 Thread cammckenzie
CURATOR-460 Synchronize access to startOfSuspendedEpoch


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

Branch: refs/heads/master
Commit: 6e8546706b1bdc267126c37601ac646584461c12
Parents: 72b7b87
Author: javando 
Authored: Wed Apr 4 23:09:10 2018 -0300
Committer: javando 
Committed: Wed Apr 4 23:09:10 2018 -0300

--
 .../curator/framework/state/ConnectionStateManager.java | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/curator/blob/6e854670/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 fedcedf..76c5636 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
@@ -251,10 +251,18 @@ public class ConnectionStateManager implements Closeable
 {
 try
 {
+
+long localStartOfSuspendedEpoch;
+
+synchronized (this) {
+localStartOfSuspendedEpoch = this.startOfSuspendedEpoch;
+}
+
 int lastNegotiatedSessionTimeoutMs = 
client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs();
 int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) 
? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs;
-useSessionTimeoutMs = sessionExpirationPercent > 0 && 
startOfSuspendedEpoch != 0 ? (useSessionTimeoutMs * sessionExpirationPercent) / 
100 : useSessionTimeoutMs;
-long elapsedMs = startOfSuspendedEpoch == 0 ? 
useSessionTimeoutMs / 2 : System.currentTimeMillis() - startOfSuspendedEpoch;
+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);



[2/6] curator git commit: CURATOR-460 Synchronize access to startOfSuspendedEpoch

2018-04-11 Thread cammckenzie
CURATOR-460 Synchronize access to startOfSuspendedEpoch


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

Branch: refs/heads/CURATOR-460
Commit: 6e8546706b1bdc267126c37601ac646584461c12
Parents: 72b7b87
Author: javando 
Authored: Wed Apr 4 23:09:10 2018 -0300
Committer: javando 
Committed: Wed Apr 4 23:09:10 2018 -0300

--
 .../curator/framework/state/ConnectionStateManager.java | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/curator/blob/6e854670/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 fedcedf..76c5636 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
@@ -251,10 +251,18 @@ public class ConnectionStateManager implements Closeable
 {
 try
 {
+
+long localStartOfSuspendedEpoch;
+
+synchronized (this) {
+localStartOfSuspendedEpoch = this.startOfSuspendedEpoch;
+}
+
 int lastNegotiatedSessionTimeoutMs = 
client.getZookeeperClient().getLastNegotiatedSessionTimeoutMs();
 int useSessionTimeoutMs = (lastNegotiatedSessionTimeoutMs > 0) 
? lastNegotiatedSessionTimeoutMs : sessionTimeoutMs;
-useSessionTimeoutMs = sessionExpirationPercent > 0 && 
startOfSuspendedEpoch != 0 ? (useSessionTimeoutMs * sessionExpirationPercent) / 
100 : useSessionTimeoutMs;
-long elapsedMs = startOfSuspendedEpoch == 0 ? 
useSessionTimeoutMs / 2 : System.currentTimeMillis() - startOfSuspendedEpoch;
+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);