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

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


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new 89da706bfcd [fix][broker] Fix `UnsupportedOperationException` when 
update topic properties. (#20261)
89da706bfcd is described below

commit 89da706bfcdb8a9c6ba13f2f0881820ffe4d2317
Author: Xiangying Meng <[email protected]>
AuthorDate: Tue May 9 20:47:45 2023 +0800

    [fix][broker] Fix `UnsupportedOperationException` when update topic 
properties. (#20261)
    
    (cherry picked from commit 0b4c29d091fca6606490aabdccc400280b191f17)
---
 .../apache/bookkeeper/mledger/impl/MetaStoreImpl.java    |  3 +--
 .../apache/pulsar/broker/admin/TopicPoliciesTest.java    | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git 
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/MetaStoreImpl.java
 
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/MetaStoreImpl.java
index fcce1f7766c..1bc2d2b04be 100644
--- 
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/MetaStoreImpl.java
+++ 
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/MetaStoreImpl.java
@@ -23,7 +23,6 @@ import io.netty.buffer.ByteBuf;
 import io.netty.buffer.CompositeByteBuf;
 import io.netty.buffer.Unpooled;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -182,7 +181,7 @@ public class MetaStoreImpl implements MetaStore, 
Consumer<Notification> {
             @Override
             public void operationFailed(MetaStoreException e) {
                 if (e instanceof MetadataNotFoundException) {
-                    result.complete(Collections.emptyMap());
+                    result.complete(new HashMap<>());
                 } else {
                     result.completeExceptionally(e);
                 }
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 a84e955cc9d..4ff29171052 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
@@ -133,6 +133,22 @@ public class TopicPoliciesTest extends 
MockedPulsarServiceBaseTest {
         super.internalCleanup();
     }
 
+    @Test
+    public void updatePropertiesForAutoCreatedTopicTest() throws Exception {
+        TopicName topicName = TopicName.get(
+                TopicDomain.persistent.value(),
+                NamespaceName.get(myNamespace),
+                "test-" + UUID.randomUUID()
+        );
+        String testTopic = topicName.toString();
+        @Cleanup
+        Producer<byte[]> producer = 
pulsarClient.newProducer().topic(testTopic).create();
+        HashMap<String, String> properties = new HashMap<>();
+        properties.put("backlogQuotaType", "message_age");
+        admin.topics().updateProperties(testTopic, properties);
+        admin.topics().delete(topicName.toString(), true);
+    }
+
     @Test
     public void testTopicPolicyInitialValueWithNamespaceAlreadyLoaded() throws 
Exception{
         TopicName topicName = TopicName.get(

Reply via email to