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

bogong 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 d91b5e8a697 [improve][broker] Improve naming for delete topic error 
(#16965)
d91b5e8a697 is described below

commit d91b5e8a6978997a80233a486ed703f74a7f8ed6
Author: Lei Zhiyuan <[email protected]>
AuthorDate: Sun Aug 14 18:17:31 2022 +0800

    [improve][broker] Improve naming for delete topic error (#16965)
    
    (cherry picked from commit d3dd143d109aba92a2144808b084fc34397c782e)
---
 .../broker/service/nonpersistent/NonPersistentTopic.java       |  3 ++-
 .../pulsar/broker/service/persistent/PersistentTopic.java      | 10 ++++++++--
 .../src/test/java/org/apache/pulsar/schema/SchemaTest.java     |  2 +-
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.java
index 35b900c297c..f032e2415e1 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/nonpersistent/NonPersistentTopic.java
@@ -389,7 +389,8 @@ public class NonPersistentTopic extends AbstractTopic 
implements Topic {
                     if (failIfHasSubscriptions) {
                         if (!subscriptions.isEmpty()) {
                             isFenced = false;
-                            deleteFuture.completeExceptionally(new 
TopicBusyException("Topic has subscriptions"));
+                            deleteFuture.completeExceptionally(
+                                    new TopicBusyException("Topic has 
subscriptions:" + subscriptions.keys()));
                             return;
                         }
                     } else {
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
index 2d154bc54f8..9491df7d446 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
@@ -1128,9 +1128,15 @@ public class PersistentTopic extends AbstractTopic
                 log.warn("[{}] Topic is already being closed or deleted", 
topic);
                 return FutureUtil.failedFuture(new TopicFencedException("Topic 
is already fenced"));
             } else if (failIfHasSubscriptions && !subscriptions.isEmpty()) {
-                return FutureUtil.failedFuture(new TopicBusyException("Topic 
has subscriptions"));
+                return FutureUtil.failedFuture(
+                        new TopicBusyException("Topic has subscriptions: " + 
subscriptions.keys()));
             } else if (failIfHasBacklogs && hasBacklogs()) {
-                return FutureUtil.failedFuture(new TopicBusyException("Topic 
has subscriptions did not catch up"));
+                List<String> backlogSubs =
+                        subscriptions.values().stream()
+                                .filter(sub -> 
sub.getNumberOfEntriesInBacklog(false) > 0)
+                                
.map(PersistentSubscription::getName).collect(Collectors.toList());
+                return FutureUtil.failedFuture(
+                        new TopicBusyException("Topic has subscriptions did 
not catch up: " + backlogSubs));
             }
 
             fenceTopicToCloseOrDelete(); // Avoid clients reconnections while 
deleting
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java 
b/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java
index 1a0921a8aea..e4c1b098ff4 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/schema/SchemaTest.java
@@ -793,7 +793,7 @@ public class SchemaTest extends MockedPulsarServiceBaseTest 
{
             admin.topics().delete(topic1, false, false);
             fail();
         } catch (Exception e) {
-            assertTrue(e.getMessage().startsWith("Topic has active 
producers/subscriptions"));
+            assertTrue(e.getMessage().startsWith("Topic has 2 connected 
producers/consumers"));
         }
         assertEquals(this.getPulsar().getSchemaRegistryService()
                 
.trimDeletedSchemaAndGetList(TopicName.get(topic1).getSchemaName()).get().size(),
 2);

Reply via email to