Github user anmolnar commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/300#discussion_r154363054 --- Diff: src/java/main/org/apache/zookeeper/server/quorum/CommitProcessor.java --- @@ -327,6 +257,95 @@ public void run() { LOG.info("CommitProcessor exited loop!"); } + private void processCommittedRequest() throws IOException, InterruptedException { + // In case of a spurious wakeup in waitForCommittedRequests we should not + // remove the request from the queue until it has been processed + Request request = committedRequests.peek(); + + if (request == null) { + committedRequests.poll(); --- End diff -- If request==null then the committedRequests queue is already empty. Why do need to poll() here? Could it be a small mistake and originally you wanted to poll() after the peek() was successful...?
---