[
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.