[ https://issues.apache.org/jira/browse/ZOOKEEPER-1394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15621801#comment-15621801 ]
Herman Meerlo commented on ZOOKEEPER-1394: ------------------------------------------ Ok, my 2 cents as the original filer of the issue (even though it was almost 5 years ago and I'm no longer working with ZooKeeper at the moment). The problem happened when trying to shut down zookeeper gracefully when the application is shut down. As the report mentions zookeeper was being stopped in the contextdestroyed (the only hook there is in an application container). So nothing was done wrong in my opinion. > ClassNotFoundException on shutdown of client > -------------------------------------------- > > Key: ZOOKEEPER-1394 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1394 > Project: ZooKeeper > Issue Type: Bug > Components: java client > Affects Versions: 3.4.2 > Environment: OS X 10.7 java version "1.6.0_29" > Reporter: Herman Meerlo > Assignee: wu wen > Priority: Minor > Attachments: ZOOKEEPER-1394.patch > > > 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. -- This message was sent by Atlassian JIRA (v6.3.4#6332)