[
https://issues.apache.org/jira/browse/ZOOKEEPER-1394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15608591#comment-15608591
]
Flavio Junqueira commented on ZOOKEEPER-1394:
---------------------------------------------
The patch is trivial and it simply replaces the call to {{ZooTrace}} with
{{LOG.debug}}, but I'm not convinced that this is the right way to fix this
issue. In fact, I'm not even sure I fully understand the issue. Is there a way
to reliably reproduce it?
I'm also thinking that {{ZooTrace}} is a bit abandoned, so we might want to
make some fixes there.
> 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)