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

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


The following commit(s) were added to refs/heads/branch-2.11 by this push:
     new e1883bf7c09 [fix][broker] Fix Return value of getPartitionedStats 
doesn't contain subscription type (#20210)
e1883bf7c09 is described below

commit e1883bf7c09f5ba8de38bc82b3a2396bbf2e06d7
Author: jack zhang <[email protected]>
AuthorDate: Fri May 5 21:25:14 2023 +0800

    [fix][broker] Fix Return value of getPartitionedStats doesn't contain 
subscription type (#20210)
---
 .../org/apache/pulsar/broker/admin/AdminApiTest.java   | 18 ++++++++++++++++++
 .../policies/data/stats/SubscriptionStatsImpl.java     |  2 ++
 2 files changed, 20 insertions(+)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
index 8d58eae59a3..45758ba5926 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
@@ -1215,6 +1215,24 @@ public class AdminApiTest extends 
MockedPulsarServiceBaseTest {
         
assertEquals(topicStats.getSubscriptions().get(subName).getEarliestMsgPublishTimeInBacklog(),
 0);
     }
 
+    @Test
+    public void testGetPartitionedStatsContainSubscriptionType() throws 
Exception {
+        final String topic = "persistent://prop-xyz/ns1/my-topic" + 
UUID.randomUUID();
+        final int numPartitions = 4;
+        admin.topics().createPartitionedTopic(topic, numPartitions);
+
+        // create consumer and subscription
+        final String subName = "my-sub";
+        @Cleanup Consumer<byte[]> exclusiveConsumer = 
pulsarClient.newConsumer().topic(topic)
+                .subscriptionName(subName)
+                .subscriptionType(SubscriptionType.Exclusive)
+                .subscribe();
+
+        TopicStats topicStats = admin.topics().getPartitionedStats(topic, 
false);
+        assertEquals(topicStats.getSubscriptions().size(), 1);
+        assertEquals(topicStats.getSubscriptions().get(subName).getType(), 
SubscriptionType.Exclusive.toString());
+    }
+
 
     @Test
     public void testGetPartitionedStatsInternal() throws Exception {
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
index 2fba83bd901..1301ebc6994 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
@@ -163,6 +163,7 @@ public class SubscriptionStatsImpl implements 
SubscriptionStats {
         backlogSize = 0;
         msgBacklogNoDelayed = 0;
         unackedMessages = 0;
+        type = null;
         msgRateExpired = 0;
         totalMsgExpired = 0;
         lastExpireTimestamp = 0L;
@@ -195,6 +196,7 @@ public class SubscriptionStatsImpl implements 
SubscriptionStats {
         this.msgBacklogNoDelayed += stats.msgBacklogNoDelayed;
         this.msgDelayed += stats.msgDelayed;
         this.unackedMessages += stats.unackedMessages;
+        this.type = stats.type;
         this.msgRateExpired += stats.msgRateExpired;
         this.totalMsgExpired += stats.totalMsgExpired;
         this.isReplicated |= stats.isReplicated;

Reply via email to