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

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

commit 1d981961ec20c0819c335820fe022b661a1087bf
Author: Xiangying Meng <[email protected]>
AuthorDate: Fri Dec 9 12:41:57 2022 +0800

    [fix][broker] Fix uncompleted future when get the topic policies of  a 
deleted topic (#18824)
    
    Fix the uncompleted future when getting the topic policies of a deleted 
topic.
    
https://github.com/apache/pulsar/blob/30b52a1ac11b4be485258140a167b5e635586a36/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.java#L513-L535
    `future.complete(null);` when `msg.getValue() == null`.
    
    (cherry picked from commit b3119613dd66038399eb4e354d6621bfe152cace)
---
 .../service/SystemTopicBasedTopicPoliciesService.java   |  2 ++
 .../apache/pulsar/broker/admin/TopicPoliciesTest.java   | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.java
index d9325235c44..9eafa06d47f 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/SystemTopicBasedTopicPoliciesService.java
@@ -523,6 +523,8 @@ public class SystemTopicBasedTopicPoliciesService 
implements TopicPoliciesServic
                         } else {
                             fetchTopicPoliciesAsyncAndCloseReader(reader, 
topicName, policies, future);
                         }
+                    } else {
+                        future.complete(null);
                     }
                 });
             } else {
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java
index 60e591446d1..80aea70c8d1 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java
@@ -3012,4 +3012,21 @@ public class TopicPoliciesTest extends 
MockedPulsarServiceBaseTest {
         producer.send(new byte[2000]);
     }
 
+    @Test
+    public void testGetTopicPoliciesWhenDeleteTopicPolicy() throws Exception {
+        admin.topics().createNonPartitionedTopic(persistenceTopic);
+        admin.topicPolicies().setMaxConsumers(persistenceTopic, 5);
+
+        int maxConsumerPerTopic = pulsar
+                .getTopicPoliciesService()
+                
.getTopicPoliciesBypassCacheAsync(TopicName.get(persistenceTopic)).get()
+                .getMaxConsumerPerTopic();
+
+        assertEquals(maxConsumerPerTopic, 5);
+        admin.topics().delete(persistenceTopic, true);
+        TopicPolicies topicPolicies =pulsar.getTopicPoliciesService()
+                
.getTopicPoliciesBypassCacheAsync(TopicName.get(persistenceTopic)).get(5, 
TimeUnit.SECONDS);
+        assertNull(topicPolicies);
+    }
+
 }

Reply via email to