This is an automated email from the ASF dual-hosted git repository. houxiaoyu 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 8b7aa6312b2 [fix][admin] Fix examine messages if total message is zero (#20152) 8b7aa6312b2 is described below commit 8b7aa6312b2af49d0c6edde85c6b0108007a0a96 Author: houxiaoyu <houxia...@apache.org> AuthorDate: Fri Apr 28 16:46:51 2023 +0800 [fix][admin] Fix examine messages if total message is zero (#20152) --- .../org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java | 4 ++++ .../java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java index 6b163ae0446..fcade8270cb 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java @@ -3061,6 +3061,10 @@ public class PersistentTopicsBase extends AdminResource { try { PersistentTopic persistentTopic = (PersistentTopic) topic; long totalMessage = persistentTopic.getNumberOfEntries(); + if (totalMessage <= 0) { + throw new RestException(Status.PRECONDITION_FAILED, + "Could not examine messages due to the total message is zero"); + } PositionImpl startPosition = persistentTopic.getFirstPosition(); long messageToSkip = initialPositionLocal.equals("earliest") ? messagePositionLocal : diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java index f80d9863a26..284e50c8302 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/PersistentTopicsTest.java @@ -1151,6 +1151,14 @@ public class PersistentTopicsTest extends MockedPulsarServiceBaseTest { + "topic partition"); } + try { + admin.topics().examineMessage(topicName + "-partition-0", "earliest", 1); + Assert.fail(); + } catch (PulsarAdminException e) { + Assert.assertEquals(e.getMessage(), + "Could not examine messages due to the total message is zero"); + } + producer.send("message1"); Assert.assertEquals( new String(admin.topics().examineMessage(topicName + "-partition-0", "earliest", 1).getData()),