[ 
https://issues.apache.org/jira/browse/HADOOP-7327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Foley updated HADOOP-7327:
-------------------------------

    Attachment: hadoop-7327-1.patch

The problem is that the underlying implementation relies on File.list(), which 
returns null upon access error, rather than throwing IOException.  (The 
underlying implementation can be hard to track down because of layering of 
FilterFileSystems, but for an example see RawLocalFileSystem.listStatus(Path).)

We can't change that behavior, because it is defined by the Java io library.  
But at our FileSystem class level, it is appropriate to check for this 
condition at the point where FileSystem.listStatus() is about to generate a 
NullPointerException, and throw an IOException instead.

> FileSystem.listStatus() throws NullPointerException instead of IOException 
> upon access permission failure
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-7327
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7327
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 0.22.0, 0.23.0
>            Reporter: Matt Foley
>            Assignee: Matt Foley
>         Attachments: hadoop-7327-1.patch
>
>
> Many processes that call listStatus() expect to handle IOException, but 
> instead are getting runtime error NullPointerException, if the directory 
> being scanned is visible but no-access to the running user id.  For example, 
> if directory foo is drwxr-xr-x, and subdirectory foo/bar is drwx------, then 
> trying to do listStatus(Path(foo/bar)) will cause a NullPointerException.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to