This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit cfe2d2c2be7e78b6b67cc4a4d198d96470c8d2fa
Author: Kai Wang <kw...@streamnative.io>
AuthorDate: Fri Apr 8 11:40:25 2022 +0800

    Fix when nextValidLedger is null cause npe (#13975)
    
    (cherry picked from commit 5cf3fa0d8050b16305ee060820b884d69ec8a828)
---
 .../java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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 e2f271a3eed..ee9474a0019 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
@@ -1738,7 +1738,8 @@ public class ManagedCursorImpl implements ManagedCursor {
             try {
                 long ledgerEntries = 
ledger.getLedgerInfo(markDeletePosition.getLedgerId()).get().getEntries();
                 Long nextValidLedger = 
ledger.getNextValidLedger(ledger.getLastConfirmedEntry().getLedgerId());
-                shouldCursorMoveForward = (markDeletePosition.getEntryId() + 1 
>= ledgerEntries)
+                shouldCursorMoveForward = nextValidLedger != null
+                        && (markDeletePosition.getEntryId() + 1 >= 
ledgerEntries)
                         && (newPosition.getLedgerId() == nextValidLedger);
             } catch (Exception e) {
                 log.warn("Failed to get ledger entries while setting 
mark-delete-position", e);

Reply via email to