Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Not A Problem
-
3.4.2
-
None
-
None
-
OS X 10.7 java version "1.6.0_29"
Description
When close() is called on the ZooKeeper instance from a ContextListener (contextDestroyed) there is no way to synchronize with the fact that the EventThread and SendThread have actually finished their work. The problem lies in the SendThread which makes a call to ZooTrace when it exits, but that class has not been loaded yet. Because the ContextListener could not synchronize with the death of the threads the classloader has already disappeared, resulting in a ClassNotFoundException.
My personal opinion is that the close() method should probably wait until the event and send thread have actually died.
Attachments
Attachments
Issue Links
- duplicates
-
ZOOKEEPER-2618 fix ClassNotFoundException on shutdown of client
- Resolved
- is related to
-
ZOOKEEPER-2697 Handle graceful stop of ZookKeeper client
- Resolved
- relates to
-
ZOOKEEPER-1816 ClientCnxn.close() should block until threads have died
- Patch Available