You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Steve Loughran (JIRA)" <ji...@apache.org> on 2015/06/28 20:12:04 UTC
[jira] [Updated] (HADOOP-12009) Clarify FileSystem.listStatus()
sorting order & fix FileSystemContractBaseTest:testListStatus
[ https://issues.apache.org/jira/browse/HADOOP-12009?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Loughran updated HADOOP-12009:
------------------------------------
Summary: Clarify FileSystem.listStatus() sorting order & fix FileSystemContractBaseTest:testListStatus (was: FileSystemContractBaseTest:testListStatus should not assume listStatus returns sorted results)
> Clarify FileSystem.listStatus() sorting order & fix FileSystemContractBaseTest:testListStatus
> ----------------------------------------------------------------------------------------------
>
> Key: HADOOP-12009
> URL: https://issues.apache.org/jira/browse/HADOOP-12009
> Project: Hadoop Common
> Issue Type: Improvement
> Components: test
> Reporter: Jakob Homan
> Assignee: J.Andreina
> Priority: Minor
> Attachments: HADOOP-12009.1.patch
>
>
> FileSystem.listStatus does not guarantee that implementations will return sorted entries:
> {code} /**
> * List the statuses of the files/directories in the given path if the path is
> * a directory.
> *
> * @param f given path
> * @return the statuses of the files/directories in the given patch
> * @throws FileNotFoundException when the path does not exist;
> * IOException see specific implementation
> */
> public abstract FileStatus[] listStatus(Path f) throws FileNotFoundException,
> IOException;{code}
> However, FileSystemContractBaseTest, expects the elements to come back sorted:
> {code} Path[] testDirs = { path("/test/hadoop/a"),
> path("/test/hadoop/b"),
> path("/test/hadoop/c/1"), };
>
> // ...
> paths = fs.listStatus(path("/test/hadoop"));
> assertEquals(3, paths.length);
> assertEquals(path("/test/hadoop/a"), paths[0].getPath());
> assertEquals(path("/test/hadoop/b"), paths[1].getPath());
> assertEquals(path("/test/hadoop/c"), paths[2].getPath());{code}
> We should pass this test as long as all the paths are there, regardless of their ordering.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)