helix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "brettkk (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HELIX-701) Potential ugly NPE
Date Sun, 29 Apr 2018 08:10:00 GMT
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)

Mime
View raw message