[ 
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)

Reply via email to