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)); + } } }
