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