Repository: hadoop
Updated Branches:
  refs/heads/HDFS-7240 a6f51d8cc -> a5adb271e


HDFS-12610. Ozone: OzoneClient: RpcClient list calls throw NPE when iterating 
over empty list. Contributed by Nandakumar.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a5adb271
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a5adb271
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a5adb271

Branch: refs/heads/HDFS-7240
Commit: a5adb271ef8472a68fe28fd16053143a07ea6abf
Parents: a6f51d8
Author: Nandakumar <na...@apache.org>
Authored: Sat Oct 7 10:29:57 2017 +0530
Committer: Nandakumar <na...@apache.org>
Committed: Sat Oct 7 10:29:57 2017 +0530

----------------------------------------------------------------------
 .../apache/hadoop/ozone/client/ObjectStore.java |  3 +-
 .../apache/hadoop/ozone/client/OzoneBucket.java |  3 +-
 .../apache/hadoop/ozone/client/OzoneVolume.java |  3 +-
 .../ozone/client/rpc/TestOzoneRpcClient.java    | 33 ++++++++++++++++++--
 4 files changed, 36 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/a5adb271/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
 
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
index 2e661db..1ed41f5 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
@@ -174,7 +174,8 @@ public class ObjectStore {
     public boolean hasNext() {
       if(!currentIterator.hasNext()) {
         currentIterator = getNextListOfVolumes(
-            currentValue.getName()).iterator();
+            currentValue != null ? currentValue.getName() : null)
+            .iterator();
       }
       return currentIterator.hasNext();
     }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a5adb271/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
 
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
index e46fe1c..a5dd1d0 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
@@ -277,7 +277,8 @@ public class OzoneBucket {
     public boolean hasNext() {
       if(!currentIterator.hasNext()) {
         currentIterator = getNextListOfKeys(
-            currentValue.getName()).iterator();
+            currentValue != null ? currentValue.getName() : null)
+            .iterator();
       }
       return currentIterator.hasNext();
     }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a5adb271/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneVolume.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneVolume.java
 
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneVolume.java
index f074fb2..bf50057 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneVolume.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/client/OzoneVolume.java
@@ -247,7 +247,8 @@ public class OzoneVolume {
     public boolean hasNext() {
       if(!currentIterator.hasNext()) {
         currentIterator = getNextListOfBuckets(
-            currentValue.getName()).iterator();
+            currentValue != null ? currentValue.getName() : null)
+            .iterator();
       }
       return currentIterator.hasNext();
     }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a5adb271/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClient.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClient.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClient.java
index e560142..0d8864e 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClient.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClient.java
@@ -409,7 +409,7 @@ public class TestOzoneRpcClient {
   }
 
   @Test
-  public void listVolumeTest() throws IOException, OzoneException {
+  public void testListVolume() throws IOException, OzoneException {
     String volBase = "vol-" + RandomStringUtils.randomNumeric(3);
     //Create 10 volume vol-<random>-a-0-<random> to vol-<random>-a-9-<random>
     String volBaseNameA = volBase + "-a-";
@@ -448,7 +448,7 @@ public class TestOzoneRpcClient {
   }
 
   @Test
-  public void listBucketTest()
+  public void testListBucket()
       throws IOException, OzoneException {
     String volumeA = "vol-a-" + RandomStringUtils.randomNumeric(5);
     String volumeB = "vol-b-" + RandomStringUtils.randomNumeric(5);
@@ -522,7 +522,19 @@ public class TestOzoneRpcClient {
   }
 
   @Test
-  public void listKeyTest()
+  public void testListBucketsOnEmptyVolume()
+      throws IOException, OzoneException {
+    String volume = "vol-" + RandomStringUtils.randomNumeric(5);
+    store.createVolume(volume);
+    OzoneVolume vol = store.getVolume(volume);
+    Iterator<OzoneBucket> buckets = vol.listBuckets("");
+    while(buckets.hasNext()) {
+      Assert.fail();
+    }
+  }
+
+  @Test
+  public void testListKey()
       throws IOException, OzoneException {
     String volumeA = "vol-a-" + RandomStringUtils.randomNumeric(5);
     String volumeB = "vol-b-" + RandomStringUtils.randomNumeric(5);
@@ -656,6 +668,21 @@ public class TestOzoneRpcClient {
     Assert.assertFalse(volABucketBIter.hasNext());
   }
 
+  @Test
+  public void testListKeyOnEmptyBucket()
+      throws IOException, OzoneException {
+    String volume = "vol-" + RandomStringUtils.randomNumeric(5);
+    String bucket = "buc-" + RandomStringUtils.randomNumeric(5);
+    store.createVolume(volume);
+    OzoneVolume vol = store.getVolume(volume);
+    vol.createBucket(bucket);
+    OzoneBucket buc = vol.getBucket(bucket);
+    Iterator<OzoneKey> keys = buc.listKeys("");
+    while(keys.hasNext()) {
+      Assert.fail();
+    }
+  }
+
   /**
    * Close OzoneClient and shutdown MiniOzoneCluster.
    */


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to