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

Steve Loughran commented on HADOOP-7352:
----------------------------------------

Looking at the codepath fpr {{FileStatus[] listStatus(Path f, PathFilter 
filter) 

 ., it invokes {{abstract FileStatus[] listStatus(Path f) }} via 
{{listStatus(ArrayList<FileStatus> results, Path f, PathFilter filter)}}, and 
includes a check for the return value being null.

That is, if you go LocalFileSystem.listStatus(path) , in some circumstances 
null can be returned, but in listStatus(path, filter), you'll get an IOE back.

It should be an IOE everywhere.

> Contracts of LocalFileSystem and DistributedFileSystem should require 
> FileSystem::listStatus throw IOException not return null upon access error
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-7352
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7352
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs, fs/s3
>            Reporter: Matt Foley
>            Assignee: Matt Foley
>
> In HADOOP-6201 and HDFS-538 it was agreed that FileSystem::listStatus should 
> throw FileNotFoundException instead of returning null, when the target 
> directory did not exist.
> However, in LocalFileSystem implementation today, FileSystem::listStatus 
> still may return null, when the target directory exists but does not grant 
> read permission.  This causes NPE in many callers, for all the reasons cited 
> in HADOOP-6201 and HDFS-538.  See HADOOP-7327 and its linked issues for 
> examples.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to