[ https://issues.apache.org/jira/browse/HADOOP-5700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12714215#action_12714215 ]
Tsz Wo (Nicholas), SZE commented on HADOOP-5700: ------------------------------------------------ After some serious thought, I suggest to revert the patch committed for the following reasons: - The patch introduces a redundant check, which degrades the namenode performance. All production systems will suffer this. The performance impact is still unknown since no performance measurement is even done. - As mentioned by [Todd's earlier comment|https://issues.apache.org/jira/browse/HADOOP-5700?focusedCommentId=12713788&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12713788], parameter validation should be happening at the outer layers of the API but not internal methods. However, the patch does parameter validation in INode.getPathComponents(..) which is an internal method. - The patch uses "/" but not the Path.SEPARATOR constant. It is incorrect, strictly speaking. - The patch does not fix any bug: it changes NPE to IAE. Both of them are uncaught runtime exceptions. Todd, Tom, Raghu, what do you think? > 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.