diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java index 670ba95e348665..e3e9d6d0f0d513 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java @@ -50,6 +50,7 @@ import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriBuilder; import org.apache.bookkeeper.mledger.LedgerOffloader; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang.mutable.MutableObject; import org.apache.commons.lang3.StringUtils; @@ -267,8 +268,13 @@ protected void internalDeleteNamespace(AsyncResponse asyncResponse, boolean auth Set partitionedTopicNames = new HashSet<>(); Set topicNames = new HashSet<>(); try { - partitionedTopicNames.addAll(pulsar().getNamespaceService().getFullListOfTopics(namespaceName) - .get(config().getMetadataStoreOperationTimeoutSeconds(), TimeUnit.SECONDS)); + if (policies == null || CollectionUtils.isEmpty(policies.replication_clusters)){ + partitionedTopicNames.addAll(pulsar().getNamespaceService().getListOfPersistentTopics(namespaceName) + .get(config().getMetadataStoreOperationTimeoutSeconds(), TimeUnit.SECONDS)); + } else { + partitionedTopicNames.addAll(pulsar().getNamespaceService().getFullListOfTopics(namespaceName) + .get(config().getMetadataStoreOperationTimeoutSeconds(), TimeUnit.SECONDS)); + } topicNames.addAll(getPartitionedTopicList(TopicDomain.persistent)); topicNames.addAll(getPartitionedTopicList(TopicDomain.non_persistent)); isEmpty = partitionedTopicNames.isEmpty() && topicNames.isEmpty();