You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by ha...@apache.org on 2011/01/03 23:22:03 UTC

svn commit: r1054807 - in /hadoop/hdfs/trunk: CHANGES.txt src/java/org/apache/hadoop/hdfs/DFSUtil.java src/test/hdfs/org/apache/hadoop/hdfs/TestDFSUtil.java

Author: hairong
Date: Mon Jan  3 22:22:03 2011
New Revision: 1054807

URL: http://svn.apache.org/viewvc?rev=1054807&view=rev
Log:
HDFS-1550. NPE when listing a file with no location. Contributed by Hairong Kuang.

Modified:
    hadoop/hdfs/trunk/CHANGES.txt
    hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSUtil.java
    hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestDFSUtil.java

Modified: hadoop/hdfs/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/CHANGES.txt?rev=1054807&r1=1054806&r2=1054807&view=diff
==============================================================================
--- hadoop/hdfs/trunk/CHANGES.txt (original)
+++ hadoop/hdfs/trunk/CHANGES.txt Mon Jan  3 22:22:03 2011
@@ -471,6 +471,8 @@ Release 0.22.0 - Unreleased
     HDFS-1560. dfs.data.dir permissions should default to 700. 
     (Todd Lipcon via eli)
 
+    HDFS-1550. NPE when listing a file with no location. (hairong)
+
 Release 0.21.1 - Unreleased
 
   IMPROVEMENTS

Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSUtil.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSUtil.java?rev=1054807&r1=1054806&r2=1054807&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSUtil.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSUtil.java Mon Jan  3 22:22:03 2011
@@ -204,6 +204,9 @@ public class DFSUtil {
     }
     int nrBlocks = blocks.locatedBlockCount();
     BlockLocation[] blkLocations = new BlockLocation[nrBlocks];
+    if (nrBlocks == 0) {
+      return blkLocations;
+    }
     int idx = 0;
     for (LocatedBlock blk : blocks.getLocatedBlocks()) {
       assert idx < nrBlocks : "Incorrect index";

Modified: hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestDFSUtil.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestDFSUtil.java?rev=1054807&r1=1054806&r2=1054807&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestDFSUtil.java (original)
+++ hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestDFSUtil.java Mon Jan  3 22:22:03 2011
@@ -19,6 +19,8 @@
 package org.apache.hadoop.hdfs;
 
 import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
@@ -65,5 +67,9 @@ public class TestDFSUtil {
 
     assertTrue("expected 1 corrupt files but got " + corruptCount, 
                corruptCount == 1);
+    
+    // test an empty location
+    bs = DFSUtil.locatedBlocks2Locations(new LocatedBlocks());
+    assertEquals(0, bs.length);
   }
 }
\ No newline at end of file