diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java index 32d46ff1c3c40..2972bb9a2477f 100644 --- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java +++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java @@ -3826,7 +3826,8 @@ static long estimateEntryCountBySize(long bytesSize, Position readPosition, Mana while (remainingBytesSize > 0) { // Last ledger. - if (posToRead.getLedgerId() == ml.getCurrentLedger().getId()) { + LedgerHandle currentLedger = ml.getCurrentLedger(); + if (currentLedger != null && posToRead.getLedgerId() == currentLedger.getId()) { if (ml.getCurrentLedgerSize() == 0 || ml.getCurrentLedgerEntries() == 0) { // Only read 1 entry if no entries to read. return 1;