Github user eribeiro commented on a diff in the pull request:
https://github.com/apache/zookeeper/pull/307#discussion_r146108343
--- Diff: src/java/main/org/apache/zookeeper/server/ServerStats.java ---
@@ -21,17 +21,32 @@
import org.apache.zookeeper.common.Time;
+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Timer;
+import java.util.TimerTask;
/**
* Basic Server Statistics
*/
public class ServerStats {
+ private static final Logger LOG =
LoggerFactory.getLogger(ServerStats.class);
+
private long packetsSent;
private long packetsReceived;
private long maxLatency;
private long minLatency = Long.MAX_VALUE;
private long totalLatency = 0;
private long count = 0;
+ private long numRequestsAboveThresholdTime = 0;
+
+ final static long requestWarnThresholdMs =
QuorumPeerConfig.getRequestWarnResponseThresholdMs();
+ final static Timer timer = new Timer();
+ volatile Boolean waitForLoggingWarnThresholdMsg = false;
--- End diff --
Oh, excuse me, I got it. It's because you are synchronizing on it, right?
Well, it's not recommended (anti-pattern) to synchronize on non-final fields.
Didn't Findbugs raised a warning about this?
---