GitHub user brettKK opened a pull request:

    https://github.com/apache/zookeeper/pull/504

    Potential NPE in Observer#observeLeader and Follower#followLeader

    Bug description:
    
    callee Learner#findLeader will return null and callee developer check it 
but just log:
    ```
    // code placeholder
    if (leaderServer == null) {
       LOG.warn("Couldn't find the leader with id = " + current.getId());
    }
    return leaderServer;
    ```
    
    caller  Observer#observeLeader and Follower#followLeader will directly use 
return value w/o null check:
    ```
    //Follower#followLeader
    QuorumServer leaderServer = findLeader();
    try {
        connectToLeader(leaderServer.addr, leaderServer.hostname);
        ..........
    }
    //Observer#observeLeader
    QuorumServer leaderServer = findLeader();
    LOG.info("Observing " + leaderServer.addr);
    try {
        connectToLeader(leaderServer.addr, leaderServer.hostname);
    }
    ```
    
    https://issues.apache.org/jira/browse/ZOOKEEPER-3010

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/brettKK/zookeeper ZOOK-3010

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/zookeeper/pull/504.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #504
    
----
commit 7d8d5230c5a87faef94d038a258b159a322f3f5e
Author: gongleigl.gong <gongleigl.gong@...>
Date:   2018-03-26T13:16:06Z

    d

commit 700dfb7f48f774dd215e5bf19340a4b61eda3397
Author: gongleigl.gong <gongleigl.gong@...>
Date:   2018-03-27T16:38:28Z

    fix NPE bug

commit f71d8ce153d393dc3ab13c62d9d374e8a4aeb1cf
Author: brettkk <1099446733@...>
Date:   2018-04-22T07:19:21Z

    zook3010

----


---

Reply via email to