[ https://issues.apache.org/jira/browse/ZOOKEEPER-1875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17523059#comment-17523059 ]
Mohammad Arshad commented on ZOOKEEPER-1875: -------------------------------------------- When watcher is null ZooKeeper client app is anyway getting null pointer exception. Now after this fix the apps will start getting IllegalArgumentException which will make it easier to figure out the wrong in the code and correct it. > 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)