[
https://issues.apache.org/jira/browse/HADOOP-14477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Steve Loughran updated HADOOP-14477:
------------------------------------
Component/s: fs
> FileSystem Simplify / Optimize listStatus Method
> ------------------------------------------------
>
> Key: HADOOP-14477
> URL: https://issues.apache.org/jira/browse/HADOOP-14477
> Project: Hadoop Common
> Issue Type: Improvement
> Components: fs
> Affects Versions: 2.7.3, 3.0.0-alpha3
> Reporter: BELUGA BEHR
> Priority: Minor
> Attachments: HADOOP-14477.1.patch, HADOOP-14477.2.patch
>
>
> {code:title=org.apache.hadoop.fs.FileSystem.listStatus(ArrayList<FileStatus>,
> Path, PathFilter)}
> /*
> * Filter files/directories in the given path using the user-supplied path
> * filter. Results are added to the given array <code>results</code>.
> */
> private void listStatus(ArrayList<FileStatus> results, Path f,
> PathFilter filter) throws FileNotFoundException, IOException {
> FileStatus listing[] = listStatus(f);
> if (listing == null) {
> throw new IOException("Error accessing " + f);
> }
> for (int i = 0; i < listing.length; i++) {
> if (filter.accept(listing[i].getPath())) {
> results.add(listing[i]);
> }
> }
> }
> {code}
> {code:title=org.apache.hadoop.fs.FileSystem.listStatus(Path, PathFilter)}
> public FileStatus[] listStatus(Path f, PathFilter filter)
> throws FileNotFoundException, IOException {
> ArrayList<FileStatus> results = new ArrayList<FileStatus>();
> listStatus(results, f, filter);
> return results.toArray(new FileStatus[results.size()]);
> }
> {code}
> We can be smarter about this:
> # Use enhanced for-loops
> # Optimize for the case where there are zero files in a directory, save on
> object instantiation
> # More encapsulated design
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]