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

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


The following commit(s) were added to refs/heads/branch-2.9 by this push:
     new a24659a7ded [fix] [admin] Make response code to 400 instead of 500 
when delete topic fails due to enabled geo-replication (#19879)
a24659a7ded is described below

commit a24659a7ded645692ba1bb4ded7c3a185b4790b4
Author: fengyubiao <[email protected]>
AuthorDate: Wed Mar 22 16:49:13 2023 +0800

    [fix] [admin] Make response code to 400 instead of 500 when delete topic 
fails due to enabled geo-replication (#19879)
    
    Motivation: As expected, If geo-replication is enabled, a topic cannot be 
deleted. However deleting that topic returns a 500, and no further info.
    Modifications: Make response code to 400 instead of 500 when delete topic 
fails due to enabled geo-replication
    (cherry picked from commit a9037334a399af905fae94d2aefa5db339cbd5b1)
---
 .../pulsar/broker/service/ReplicatorTest.java      | 30 +++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
index 5851298b005..b20083e84a4 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ReplicatorTest.java
@@ -67,6 +67,7 @@ import 
org.apache.pulsar.broker.service.BrokerServiceException.NamingException;
 import org.apache.pulsar.broker.service.persistent.PersistentReplicator;
 import org.apache.pulsar.broker.service.persistent.PersistentTopic;
 import org.apache.pulsar.client.admin.PulsarAdmin;
+import org.apache.pulsar.client.admin.PulsarAdminException;
 import org.apache.pulsar.client.api.Consumer;
 import org.apache.pulsar.client.api.Message;
 import org.apache.pulsar.client.api.MessageId;
@@ -762,7 +763,34 @@ public class ReplicatorTest extends ReplicatorTestBase {
         assertNull(producer);
     }
 
-    @Test(priority = 5, timeOut = 30000)
+    @Test
+    public void testDeleteTopicFailure() throws Exception {
+        final String topicName = 
BrokerTestUtil.newUniqueName("persistent://pulsar/ns/tp_" + UUID.randomUUID());
+        admin1.topics().createNonPartitionedTopic(topicName);
+        try {
+            admin1.topics().delete(topicName);
+            fail("Delete topic should fail if enabled replicator");
+        } catch (Exception ex) {
+            assertTrue(ex instanceof PulsarAdminException);
+            assertEquals(((PulsarAdminException) ex).getStatusCode(), 422/* 
Unprocessable entity*/);
+        }
+    }
+
+    @Test
+    public void testDeletePartitionedTopicFailure() throws Exception {
+        final String topicName = 
BrokerTestUtil.newUniqueName("persistent://pulsar/ns/tp_" + UUID.randomUUID());
+        admin1.topics().createPartitionedTopic(topicName, 2);
+        admin1.topics().createSubscription(topicName, "sub1", 
MessageId.earliest);
+        try {
+            admin1.topics().deletePartitionedTopic(topicName);
+            fail("Delete topic should fail if enabled replicator");
+        } catch (Exception ex) {
+            assertTrue(ex instanceof PulsarAdminException);
+            assertEquals(((PulsarAdminException) ex).getStatusCode(), 422/* 
Unprocessable entity*/);
+        }
+    }
+
+    @Test(priority = 4, timeOut = 30000)
     public void testReplicatorProducerName() throws Exception {
         log.info("--- Starting ReplicatorTest::testReplicatorProducerName 
---");
         final String topicName = 
BrokerTestUtil.newUniqueName("persistent://pulsar/ns/testReplicatorProducerName");

Reply via email to