diff --git a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/recovery/ReconOmMetadataManagerImpl.java b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/recovery/ReconOmMetadataManagerImpl.java index 15fea3574aa7..91cb61369fcd 100644 --- a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/recovery/ReconOmMetadataManagerImpl.java +++ b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/recovery/ReconOmMetadataManagerImpl.java @@ -169,8 +169,16 @@ public List listVolumes(String startKey, // Unlike in {@link OmMetadataManagerImpl}, the volumes are queried directly // from the volume table (not through cache) since Recon does not use // Table cache. + Table volumeTable = getVolumeTable(); + + // If the table is not yet initialized, i.e. it is null + // Return empty list as response + if (volumeTable == null) { + return result; + } + try (TableIterator> - iterator = getVolumeTable().iterator()) { + iterator = volumeTable.iterator()) { while (iterator.hasNext() && result.size() < maxKeys) { Table.KeyValue kv = iterator.next(); @@ -296,6 +304,11 @@ private List listAllBuckets(final int maxNumberOfBuckets) int currentCount = 0; Table bucketTable = getBucketTable(); + // If the table is not yet initialized, i.e. it is null + // Return empty list as response + if (bucketTable == null) { + return result; + } try (TableIterator> iterator = bucketTable.iterator()) {