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

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

commit a51196ecf4d4d626487f43b9caf4c04e363a0d56
Author: Jiwei Guo <[email protected]>
AuthorDate: Tue Jun 28 14:39:00 2022 +0800

    [fix][broker] Fix NPE when drop backlog for time limit. (#16235)
    
    (cherry picked from commit d24d82780fd27a98c6cdbee28d756ee7d419495f)
---
 .../java/org/apache/pulsar/broker/service/BacklogQuotaManager.java    | 4 ++++
 1 file changed, 4 insertions(+)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
index c41901222f3..805d00adca6 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
@@ -214,6 +214,10 @@ public class BacklogQuotaManager {
                     ManagedCursor slowestConsumer = 
mLedger.getSlowestConsumer();
                     Position oldestPosition = 
slowestConsumer.getMarkDeletedPosition();
                     ManagedLedgerInfo.LedgerInfo ledgerInfo = 
mLedger.getLedgerInfo(oldestPosition.getLedgerId()).get();
+                    if (ledgerInfo == null) {
+                        
slowestConsumer.resetCursor(mLedger.getNextValidPosition((PositionImpl) 
oldestPosition));
+                        continue;
+                    }
                     // Timestamp only > 0 if ledger has been closed
                     if (ledgerInfo.getTimestamp() > 0
                             && currentMillis - ledgerInfo.getTimestamp() > 
quota.getLimitTime()) {

Reply via email to