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