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

Matt Foley commented on HADOOP-7342:
------------------------------------

Cos, the reason I support this new utility api, is that Hadoop is full of 
constructs like
{code}
// in context of a "throws IOException" or try/catch IOE:
File[] files = dir.list();
if (files.length > 0) {...}
{code}

This code handles empty and non-empty directory lists, and is ready to handle 
IOExceptions.  Unfortunately, the posix-style File.list() api returns null when 
it would reasonably be expected to throw IOException, causing NPE on the 
.length method call, which as a run-time exception isn't typically even looked 
for.

Rather than inject null-checking code with a conditional throw statement into 
every place like this, Bharath has suggested calling this new FileUtil method.  
Developers can still use the JDK method when the null return on IOE is 
desirable.  I think this is a good idea.

> Add an utility API in FileUtil for JDK File.list
> ------------------------------------------------
>
>                 Key: HADOOP-7342
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7342
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 0.23.0
>            Reporter: Bharath Mundlapudi
>            Assignee: Bharath Mundlapudi
>            Priority: Minor
>             Fix For: 0.23.0
>
>         Attachments: HADOOP-7342-1.patch
>
>
> Java File.list API can return null when disk is bad or directory is not a 
> directory. This utility API in FileUtil will throw an exception when this 
> happens rather than returning null. 

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

Reply via email to