[ 
https://issues.apache.org/jira/browse/HDFS-7104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14147018#comment-14147018
 ] 

Zhe Zhang commented on HDFS-7104:
---------------------------------

Good catch! How about the below:
{code:java}
  /**
   * @return a new array of inodes excluding the null elements introduced by 
snapshot
   *  path elements. E.g., for path /dir/.snapshot, {@link #inodes} includes 3 
elements,
   *  for "/", "dir", and ".snapshot", while the returned array only contains 
inodes of "/"
   *  and "dir". Note the length of the returned array is always equal to 
{@link #capacity}.
   */
{code}

> Fix and clarify INodeInPath getter functions
> --------------------------------------------
>
>                 Key: HDFS-7104
>                 URL: https://issues.apache.org/jira/browse/HDFS-7104
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Zhe Zhang
>            Assignee: Zhe Zhang
>            Priority: Minor
>         Attachments: HDFS-7104-20140923-v1.patch, 
> HDFS-7104-20140923-v3.patch, HDFS-7104-20140924-v1.patch, 
> HDFS-7104-20140924-v2.patch
>
>
> inodes is initialized with the number of patch components. After resolve, it 
> contains both non-null and null elements (introduced by dot-snapshot dirs).
> When getINodes is called, an array is returned excluding all non elements, 
> which is the correct behavior. Meanwhile, the inodes array is trimmed too, 
> which shouldn't be done by a getter.
> Because of the above, the behavior of getINodesInPath depends on whether 
> getINodes has been called, which is not correct.
> The name of getLastINodeInPath is confusing – it actually returns the last 
> non-null inode in the path. Also, shouldn't the return type be a single INode?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to