brettkk created HELIX-701:
-----------------------------
Summary: Potential ugly NPE
Key: HELIX-701
URL: https://issues.apache.org/jira/browse/HELIX-701
Project: Apache Helix
Issue Type: Bug
Reporter: brettkk
We have developed a static analysis tool
[NPEDetector|https://github.com/lujiefsi/NPEDetector] to find some potential
NPE. Our analysis shows that some callees may return null in corner case(e.g.
node crash , IOException), some of their callers have _!=null_ check but some
do not have. In this issue we post a patch which can add !=null based on
existed !=null check. For example:
ZkGrep#parseZkSnapshot:
{code:java}
return retFiles;
} catch (Exception e) {
LOG.error("fail to parse zkSnapshot: " + lastZkSnapshot, e);
}
return null;{code}
So parseZkSnapshot will return null while IOException happens. but its caller
ZkGrep#processCommandLineArgs have no null checker:
{code:java}
File[] lastZkSnapshot = parseZkSnapshot(zkDataDirs[1], byTime);
// lastZkSnapshot[1] is the parsed last snapshot by byTime
grepZkSnapshot(lastZkSnapshot[1], patterns);
{code}
We should terminate the process while lastZkSnapshot == null
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)