diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java index 484b75965bd..3b6f8c40990 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LongHierarchicalLedgerManager.java @@ -333,11 +333,19 @@ synchronized public LedgerRange next() throws IOException { } private LedgerRange getLedgerRangeByLevel(List curLevelNodes) throws IOException { + if (curLevelNodes.size() < 4) { + return null; + } + String level0 = curLevelNodes.get(0); String level1 = curLevelNodes.get(1); String level2 = curLevelNodes.get(2); String level3 = curLevelNodes.get(3); - + + if (level0 == null || level1 == null || level2 == null || level3 == null) { + return null; + } + StringBuilder nodeBuilder = new StringBuilder(); nodeBuilder.append(ledgerRootPath).append("/").append(level0).append("/").append(level1).append("/") .append(level2).append("/").append(level3);