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

Colin Patrick McCabe commented on HDFS-7764:
--------------------------------------------

Thanks, [~rakeshr].

{code}
856           if (fileNames.size() < 0) {
857             return report;
858           }
{code}
What's the purpose of this if statement?  The size of a list can't be less than 
0.

{code}
859           files = new File[fileNames.size()];
860           for (int i = 0; i < fileNames.size(); i++) {
861             files[i] = new File(dir, fileNames.get(i));
862           }
863           Arrays.sort(files);
{code}
It would be nice to avoid allocating all these new arrays.  We don't really 
need them.  We should be able to sort the list with {{List#sort}}, and we can 
turn the {{String}} objects into {{File}} objects one at a time in the for loop.

> DirectoryScanner shouldn't abort the scan if one directory had an error
> -----------------------------------------------------------------------
>
>                 Key: HDFS-7764
>                 URL: https://issues.apache.org/jira/browse/HDFS-7764
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: datanode
>    Affects Versions: 2.7.0
>            Reporter: Rakesh R
>            Assignee: Rakesh R
>         Attachments: HDFS-7764-01.patch, HDFS-7764.patch
>
>
> If there is an exception while preparing the ScanInfo for the blocks in the 
> directory, DirectoryScanner is immediately throwing exception and coming out 
> of the current scan cycle. The idea of this jira is to discuss & improve the 
> exception handling mechanism.
> DirectoryScanner.java
> {code}
>     for (Entry<Integer, Future<ScanInfoPerBlockPool>> report :
>         compilersInProgress.entrySet()) {
>       try {
>         dirReports[report.getKey()] = report.getValue().get();
>       } catch (Exception ex) {
>         LOG.error("Error compiling report", ex);
>         // Propagate ex to DataBlockScanner to deal with
>         throw new RuntimeException(ex);
>       }
> {code}



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

Reply via email to