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()),

Reply via email to