[ https://issues.apache.org/jira/browse/HADOOP-5700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12713805#action_12713805 ]
Todd Lipcon commented on HADOOP-5700: ------------------------------------- bq. In your case, if getPathNames() returned 'new String[0];' rather than null, would the it work fine? (i.e. namenode.getFileInfo() behaves as though a non-existent path was queried). Well, I would actually prefer either an IllegalArgumentException or an IOException that explicitly says ("Argument to getFileInfo should be an absolute path") rather than a vanilla FileNotFound exception. This makes it clear to the user-developer that they are misusing the API rather than just looking for a nonexistent file. bq. But that still leaves the problem with namenode.getFileInfo(null). I think if people pass a null into a function they should expect it to break. That's an easy thing to diagnose from the user-developer perspective, whereas missing initial '/' is a bit trickier. I'd love to include something like the google Preconditions class for cases like this. It cuts down on code cruft and makes it clear what is going on: http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/base/Preconditions.html > INode.getPathComponents throws NPE when given a non-absolute path > ----------------------------------------------------------------- > > Key: HADOOP-5700 > URL: https://issues.apache.org/jira/browse/HADOOP-5700 > Project: Hadoop Core > Issue Type: Bug > Components: dfs > Reporter: Todd Lipcon > Assignee: Todd Lipcon > Priority: Minor > Fix For: 0.21.0 > > Attachments: HADOOP-5700.txt > > > If you pass a path that doesn't start with '/' to INode.getPathComponents, it > throws a NullPointerException. Instead it should throw > IllegalArgumentException to make it clear that absolute paths are required in > this code. > The attached patch fixes this, clarifies, the javadoc, and adds a test case. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.