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

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

commit e2c84b28f8fdd9842bc21c37850a47e4e95f2030
Author: feynmanlin <[email protected]>
AuthorDate: Mon Feb 15 13:06:41 2021 +0800

    Fix get-message-by-id throwing NPE when message is null (#9537)
    
    Fixes #9518
    
    Add friendly reminder tips for command
    
    (cherry picked from commit 6ebc7959e595cb0878cb84d9cb756fd6ebb14050)
---
 .../java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java  |  3 +++
 .../src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java   | 10 +++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
index ec13cfb..7f0f33c 100644
--- 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
+++ 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
@@ -814,6 +814,9 @@ public class PulsarAdminToolTest {
         cmdTopics.run(split("set-max-message-size 
persistent://myprop/clust/ns1/ds1 -m 99"));
         
verify(mockTopics).setMaxMessageSize("persistent://myprop/clust/ns1/ds1", 99);
 
+        cmdTopics.run(split("get-message-by-id 
persistent://myprop/clust/ns1/ds1 -l 10 -e 2"));
+        verify(mockTopics).getMessageById("persistent://myprop/clust/ns1/ds1", 
10,2);
+
         cmdTopics.run(split("get-max-producers 
persistent://myprop/clust/ns1/ds1"));
         
verify(mockTopics).getMaxProducers("persistent://myprop/clust/ns1/ds1");
         cmdTopics.run(split("remove-max-producers 
persistent://myprop/clust/ns1/ds1"));
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
index fadadf0..fc2944d 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
@@ -855,9 +855,13 @@ public class CmdTopics extends CmdBase {
             String persistentTopic = validatePersistentTopic(params);
 
             Message<byte[]> message = topics.getMessageById(persistentTopic, 
ledgerId, entryId);
-
-            ByteBuf date = Unpooled.wrappedBuffer(message.getData());
-            System.out.println(ByteBufUtil.prettyHexDump(date));
+            if (message == null) {
+                System.out.println("Cannot find any messages based on 
ledgerId:"
+                        + ledgerId + " entryId:" + entryId);
+            } else {
+                ByteBuf date = Unpooled.wrappedBuffer(message.getData());
+                System.out.println(ByteBufUtil.prettyHexDump(date));
+            }
         }
     }
 

Reply via email to