Browse Source

Revert "HADOOP-12009 Clarify FileSystem.listStatus() sorting order & fix FileSystemContractBaseTest:testListStatus. (J.Andreina via stevel)"

This reverts commit 3dfa8161f9412bcb040f3c29c471344f25f24337.
Steve Loughran 9 years ago
parent
commit
076948d9a4

+ 0 - 4
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -664,10 +664,6 @@ Release 2.8.0 - UNRELEASED
 
     HADOOP-11958. MetricsSystemImpl fails to show backtrace when an error
     occurs (Jason Lowe via jeagles)
-
-    HADOOP-12009 Clarify FileSystem.listStatus() sorting order & fix
-    FileSystemContractBaseTest:testListStatus. (J.Andreina via stevel)
-
   OPTIMIZATIONS
 
     HADOOP-11785. Reduce the number of listStatus operation in distcp

+ 1 - 16
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java

@@ -1498,9 +1498,7 @@ public abstract class FileSystem extends Configured implements Closeable {
   /**
    * List the statuses of the files/directories in the given path if the path is
    * a directory.
-   * <p>
-   * Does not guarantee to return the List of files/directories status in a
-   * sorted order.
+   * 
    * @param f given path
    * @return the statuses of the files/directories in the given patch
    * @throws FileNotFoundException when the path does not exist;
@@ -1542,9 +1540,6 @@ public abstract class FileSystem extends Configured implements Closeable {
   /**
    * Filter files/directories in the given path using the user-supplied path
    * filter.
-   * <p>
-   * Does not guarantee to return the List of files/directories status in a
-   * sorted order.
    * 
    * @param f
    *          a path name
@@ -1565,9 +1560,6 @@ public abstract class FileSystem extends Configured implements Closeable {
   /**
    * Filter files/directories in the given list of paths using default
    * path filter.
-   * <p>
-   * Does not guarantee to return the List of files/directories status in a
-   * sorted order.
    * 
    * @param files
    *          a list of paths
@@ -1584,9 +1576,6 @@ public abstract class FileSystem extends Configured implements Closeable {
   /**
    * Filter files/directories in the given list of paths using user-supplied
    * path filter.
-   * <p>
-   * Does not guarantee to return the List of files/directories status in a
-   * sorted order.
    * 
    * @param files
    *          a list of paths
@@ -1747,8 +1736,6 @@ public abstract class FileSystem extends Configured implements Closeable {
    * while consuming the entries. Each file system implementation should
    * override this method and provide a more efficient implementation, if
    * possible. 
-   * Does not guarantee to return the iterator that traverses statuses
-   * of the files in a sorted order.
    *
    * @param p target path
    * @return remote iterator
@@ -1776,8 +1763,6 @@ public abstract class FileSystem extends Configured implements Closeable {
 
   /**
    * List the statuses and block locations of the files in the given path.
-   * Does not guarantee to return the iterator that traverses statuses
-   * of the files in a sorted order.
    * 
    * If the path is a directory, 
    *   if recursive is false, returns files in the directory;

+ 0 - 4
hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md

@@ -183,10 +183,6 @@ to the same path:
     forall fs in listStatus(Path) :
       fs == getFileStatus(fs.path)
 
-**Ordering of results**: there is no guarantee of ordering of the listed entries.
-While HDFS currently returns an alphanumerically sorted list, neither the Posix `readdir()`
-nor Java's `File.listFiles()` API calls define any ordering of returned values. Applications
-which require a uniform sort order on the results must perform the sorting themselves.
 
 ### Atomicity and Consistency
 

+ 3 - 8
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/FileSystemContractBaseTest.java

@@ -20,7 +20,6 @@ package org.apache.hadoop.fs;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.util.ArrayList;
 
 import junit.framework.TestCase;
 
@@ -225,13 +224,9 @@ public abstract class FileSystemContractBaseTest extends TestCase {
 
     paths = fs.listStatus(path("/test/hadoop"));
     assertEquals(3, paths.length);
-    ArrayList<String> list = new ArrayList<String>();
-    for (FileStatus fileState : paths) {
-      list.add(fileState.getPath().toString());
-    }
-    assertTrue(list.contains(path("/test/hadoop/a")));
-    assertTrue(list.contains(path("/test/hadoop/b")));
-    assertTrue(list.contains(path("/test/hadoop/c")));
+    assertEquals(path("/test/hadoop/a"), paths[0].getPath());
+    assertEquals(path("/test/hadoop/b"), paths[1].getPath());
+    assertEquals(path("/test/hadoop/c"), paths[2].getPath());
 
     paths = fs.listStatus(path("/test/hadoop/a"));
     assertEquals(0, paths.length);