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 <[email protected]>
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()),