Github user enixon commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/529#discussion_r195949390 --- Diff: src/java/main/org/apache/zookeeper/ClientCnxn.java --- @@ -1260,10 +1260,8 @@ public void run() { cleanup(); } clientCnxnSocket.close(); - if (state.isAlive()) { - eventThread.queueEvent(new WatchedEvent(Event.EventType.None, - Event.KeeperState.Disconnected, null)); - } + eventThread.queueEvent(new WatchedEvent(Event.EventType.None, + Event.KeeperState.Closed, null)); --- End diff -- I'd expect the client to always receive a Disconnected state before receiving a Closed state and it looks like that constraint is not enforced.
---