[ https://issues.apache.org/jira/browse/HADOOP-5700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12713718#action_12713718 ]
Todd Lipcon commented on HADOOP-5700: ------------------------------------- bq. Did anyone measure the performance impact on the patch? The check (!path.startsWith("/")) introduced by the patch seems to be redundant since getPathNames(..) has the same check. I can't imagine this would have any discernible performance impact, since it simply accesses the first character of an existing String. This is nothing compared to the allocation and byte copying that occurs inside of getPathComponents. bq. After the patch, calling getPathComponents(null) will get a NPE but it was not before the patch. Is it a bug? This isn't changed by the patch - previously getPathNames returned null, which was then passed into getPathComponents. This would have thrown an NPE when accessing strings.length. In either case, if you pass null into a method which doesn't explicitly document that as being acceptable, you should not be surprised by an NPE. > 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.