Prevent certain state transitions in Java client on close(); improve exception 
handling and enhance client testability
----------------------------------------------------------------------------------------------------------------------

                 Key: ZOOKEEPER-1202
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1202
             Project: ZooKeeper
          Issue Type: Improvement
          Components: java client
    Affects Versions: 3.4.0
            Reporter: Matthias Spycher
            Assignee: Matthias Spycher


ZooKeeper.close() doesn't force the client into a CLOSED state. While the 
closing flag ensures that the client will close, its state may end up in 
CLOSED, CONNECTING or CONNECTED.
I developed a patch and in the process cleaned up a few other things primarily 
to enable testing of state transitions.

- ClientCnxnState is new and enforces certain state transitions
- ZooKeeper.isExpired() is new
- ClientCnxn no longer refers to ZooKeeper, WatchManager is externalized, and 
ClientWatchManager includes 3 new methods
- The SendThread terminates the EventThread on a call to close() via the 
event-of-death
- Polymorphism is used to handle internal exceptions (SendIOExceptions)
- The patch incorporates ZOOKEEPER-126.patch and prevents close() from blocking



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to