You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by si...@apache.org on 2019/07/03 01:45:07 UTC

[pulsar] branch master updated: [pulsar-broker] fix NPE at managed-ledger when fetch reader internal-stats (#4615)

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

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new b306552  [pulsar-broker] fix NPE at managed-ledger when fetch reader internal-stats (#4615)
b306552 is described below

commit b306552ff0756f0b555c125286cc4b8ed4b11c1e
Author: Rajan Dhabalia <rd...@apache.org>
AuthorDate: Tue Jul 2 18:45:01 2019 -0700

    [pulsar-broker] fix NPE at managed-ledger when fetch reader internal-stats (#4615)
    
    ### Motivation
    
    Broker throws NPE when pulsar-admin tries to fetch stats-internal for topic with reader.
    
    ```
    Caused by: java.lang.NullPointerException
    	at org.apache.bookkeeper.mledger.impl.ManagedCursorImpl.getProperties(ManagedCursorImpl.java:234) ~[classes/:?]
    	at org.apache.pulsar.broker.service.persistent.PersistentTopic.lambda$getInternalStats$48(PersistentTopic.java:1461) ~[classes/:?]
    	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:1.8.0_92]
    	at org.apache.pulsar.broker.service.persistent.PersistentTopic.getInternalStats(PersistentTopic.java:1446) ~[classes/:?]
    	at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.internalGetInternalStats(PersistentTopicsBase.java:621) ~[classes/:?]
    	at org.apache.pulsar.broker.admin.v2.PersistentTopics.getInternalStats(PersistentTopics.java:430) ~[classes/:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92]
    ```
---
 .../main/java/org/apache/bookkeeper/mledger/impl/ManagedCursorImpl.java | 2 +-
 1 file changed, 1 insertion(+), 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 a936954..d185274 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
@@ -231,7 +231,7 @@ public class ManagedCursorImpl implements ManagedCursor {
 
     @Override
     public Map<String, Long> getProperties() {
-        return lastMarkDeleteEntry.properties;
+        return lastMarkDeleteEntry != null ? lastMarkDeleteEntry.properties : Collections.emptyMap();
     }
 
     /**