Author: cdouglas
Date: Fri Jul 11 13:22:05 2008
New Revision: 676070

URL: http://svn.apache.org/viewvc?rev=676070&view=rev
Log:
HADOOP-3716. Prevent listStatus in KosmosFileSystem from returning
null for valid, empty directories. Contributed by Sriram Rao.

Modified:
    hadoop/core/branches/branch-0.18/CHANGES.txt
    
hadoop/core/branches/branch-0.18/src/core/org/apache/hadoop/fs/kfs/KosmosFileSystem.java
    
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java
    
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/TestKosmosFileSystem.java

Modified: hadoop/core/branches/branch-0.18/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/CHANGES.txt?rev=676070&r1=676069&r2=676070&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.18/CHANGES.txt Fri Jul 11 13:22:05 2008
@@ -747,6 +747,9 @@
     HADOOP-3647. Add debug logs to help track down a very occassional,
     hard-to-reproduce, bug in shuffle/merge on the reducer. (acmurthy) 
 
+    HADOOP-3716. Prevent listStatus in KosmosFileSystem from returning
+    null for valid, empty directories. (Sriram Rao via cdouglas)
+
 Release 0.17.2 - Unreleased
 
   BUG FIXES

Modified: 
hadoop/core/branches/branch-0.18/src/core/org/apache/hadoop/fs/kfs/KosmosFileSystem.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/core/org/apache/hadoop/fs/kfs/KosmosFileSystem.java?rev=676070&r1=676069&r2=676070&view=diff
==============================================================================
--- 
hadoop/core/branches/branch-0.18/src/core/org/apache/hadoop/fs/kfs/KosmosFileSystem.java
 (original)
+++ 
hadoop/core/branches/branch-0.18/src/core/org/apache/hadoop/fs/kfs/KosmosFileSystem.java
 Fri Jul 11 13:22:05 2008
@@ -147,11 +147,6 @@
                continue;
            numEntries++;
        }
-       if (numEntries == 0) {
-           return null;
-        }
-
-        // System.out.println("Calling listStatus on: " + path);
 
        FileStatus[] pathEntries = new FileStatus[numEntries];
        int j = 0;

Modified: 
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java?rev=676070&r1=676069&r2=676070&view=diff
==============================================================================
--- 
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java
 (original)
+++ 
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/KFSEmulationImpl.java
 Fri Jul 11 13:22:05 2008
@@ -51,34 +51,17 @@
         return localFS.isFile(new Path(path));
     }
 
-    // as part of the emulation, KFS adds ./.. as directory entries
-    // when doing a directory listing.
     public String[] readdir(String path) throws IOException {
         FileStatus[] p = localFS.listStatus(new Path(path));
         String[] entries = null;
 
         if (p == null) {
-            if (isDirectory(path)) {
-                // empty dirs have "." and ".."
-                entries = new String[2];
-                entries[0] = new String(".");
-                entries[1] = new String("..");
-            }
-            return entries;
+            return null;
         }
 
-        if (isDirectory(path)) {
-            // for dirs, add "."/".." as KFS does that
-            entries = new String[p.length + 2];
-            entries[0] = new String(".");
-            entries[1] = new String("..");
-            for (int i = 0; i < p.length; i++)
-                entries[i+2] = p[i].getPath().toString();
-        } else {
-            entries = new String[p.length];
-            for (int i = 0; i < p.length; i++)
-                entries[i] = p[i].getPath().toString();
-        }
+        entries = new String[p.length];
+        for (int i = 0; i < p.length; i++)
+            entries[i] = p[i].getPath().toString();
         return entries;
     }
 

Modified: 
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/TestKosmosFileSystem.java
URL: 
http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/TestKosmosFileSystem.java?rev=676070&r1=676069&r2=676070&view=diff
==============================================================================
--- 
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/TestKosmosFileSystem.java
 (original)
+++ 
hadoop/core/branches/branch-0.18/src/test/org/apache/hadoop/fs/kfs/TestKosmosFileSystem.java
 Fri Jul 11 13:22:05 2008
@@ -107,7 +107,7 @@
 
         kosmosFileSystem.delete(file2, true);
         p = kosmosFileSystem.listStatus(subDir1);
-        assertEquals(p, null);
+        assertEquals(p.length, 0);
 
         kosmosFileSystem.delete(baseDir, true);
         assertFalse(kosmosFileSystem.exists(baseDir));


Reply via email to