[ https://issues.apache.org/jira/browse/ZOOKEEPER-1875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523057#comment-17523057 ]
Mohammad Arshad commented on ZOOKEEPER-1875: -------------------------------------------- I have checked the zk client code carefully, NPE will occur only when watcher is set null either throw ZooKeeper constructor or through register method. Now I think we should do the exactly what had been submitted in latest ZOOKEEPER-1875.patch. > NullPointerException in ClientCnxn$EventThread.processEvent > ----------------------------------------------------------- > > Key: ZOOKEEPER-1875 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1875 > Project: ZooKeeper > Issue Type: Bug > Components: java client > Affects Versions: 3.4.5, 3.4.10 > Reporter: Jerry He > Assignee: Jerry He > Priority: Minor > Labels: pull-request-available > Attachments: ZOOKEEPER-1875-trunk.patch, ZOOKEEPER-1875.patch, > ZOOKEEPER-1875.patch > > Time Spent: 40m > Remaining Estimate: 0h > > We've been seeing NullPointerException while working on HBase: > {code} > 14/01/30 22:15:25 INFO zookeeper.ZooKeeper: Client > environment:user.dir=/home/biadmin/hbase-trunk > 14/01/30 22:15:25 INFO zookeeper.ZooKeeper: Initiating client connection, > connectString=hdtest009:2181 sessionTimeout=90000 watcher=null > 14/01/30 22:15:25 INFO zookeeper.ClientCnxn: Opening socket connection to > server hdtest009/9.30.194.18:2181. Will not attempt to authenticate using > SASL (Unable to locate a login configuration) > 14/01/30 22:15:25 INFO zookeeper.ClientCnxn: Socket connection established to > hdtest009/9.30.194.18:2181, initiating session > 14/01/30 22:15:25 INFO zookeeper.ClientCnxn: Session establishment complete > on server hdtest009/9.30.194.18:2181, sessionid = 0x143986213e67e48, > negotiated timeout = 60000 > 14/01/30 22:15:25 ERROR zookeeper.ClientCnxn: Error while calling watcher > java.lang.NullPointerException > at > org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:519) > at > org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:495) > {code} > The reason is the watcher is null in this part of the code: > {code} > private void processEvent(Object event) { > try { > if (event instanceof WatcherSetEventPair) { > // each watcher will process the event > WatcherSetEventPair pair = (WatcherSetEventPair) event; > for (Watcher watcher : pair.watchers) { > try { > watcher.process(pair.event); > } catch (Throwable t) { > LOG.error("Error while calling watcher ", t); > } > } > {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)