GitHub user brettKK opened a pull request: https://github.com/apache/helix/pull/200
throw new Exception to avoid ugly NPE We have developed a static analysis tool 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: ``` return retFiles; } catch (Exception e) { LOG.error("fail to parse zkSnapshot: " + lastZkSnapshot, e); } return null; ``` So parseZkSnapshot will return null while IOException happens. but its caller ZkGrep#processCommandLineArgs have no null checker: ``` File[] lastZkSnapshot = parseZkSnapshot(zkDataDirs[1], byTime); // lastZkSnapshot[1] is the parsed last snapshot by byTime grepZkSnapshot(lastZkSnapshot[1], patterns); ``` We should terminate the process while lastZkSnapshot == null You can merge this pull request into a Git repository by running: $ git pull https://github.com/brettKK/helix HELIX-701 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/helix/pull/200.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 #200 ---- ---- ---