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

David Dobbins commented on HADOOP-12080:
----------------------------------------

Seems to me that the assumption that Globber is making (for any file that 
exists, the parent path should also exist) is reasonable, so I don't think 
Globber needs to change (though it could do better to protect against the NPE). 
 I believe swiftfs should behave consistently with what Globber is expecting 
and either:
a) don't return any child objects at all if the parent doesn't exist (i.e. baz 
is not a child of /foo/bar if /foo/bar doesn't exist); or
b) allow "implicit" directories and return information for /foo/bar so long as 
one or more objects exist with a prefix of /foo/bar/


> swiftfs ls fails with NPE for dirs with single file
> ---------------------------------------------------
>
>                 Key: HADOOP-12080
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12080
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs/swift
>    Affects Versions: 2.3.0
>            Reporter: David Dobbins
>            Assignee: David Dobbins
>            Priority: Minor
>
> NPE from Globber.java (line 230) if a directory has only one child *and* 
> there is no explicit parent directory object.  
> To reproduce, create an object in swift directly (not using swiftfs), e.g. 
> /foo/bar/baz in container test.  Then, try to ls the "directory" for that 
> object:
> hdfs dfs -ls swift://test.myswift/foo/bar/*
> This fails for dirs containing single files because in Globber.java there is 
> a specific test for objects with a single child.  The getFileStatus() call 
> returns null for the object's parent (because no explicit directory object 
> was created in swift).  However, Globber assumes that if the child exists 
> getPath() will return an object that exist.



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

Reply via email to