hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tsz Wo (Nicholas), SZE (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-5700) INode.getPathComponents throws NPE when given a non-absolute path
Date Thu, 28 May 2009 23:19:46 GMT

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


Mime
View raw message