diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java index 7d4b6d1a793a8..9124ebb890e98 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/AdminResource.java @@ -357,10 +357,9 @@ protected void validatePartitionedTopicName(String tenant, String namespace, Str } protected void validatePartitionedTopicMetadata(String tenant, String namespace, String encodedTopic) { - String completeTopicName = tenant + "/" + namespace + "/" + Codec.decode(encodedTopic); try { PartitionedTopicMetadata partitionedTopicMetadata = - pulsar().getBrokerService().fetchPartitionedTopicMetadataAsync(TopicName.get(completeTopicName)).get(); + pulsar().getBrokerService().fetchPartitionedTopicMetadataAsync(topicName).get(); if (partitionedTopicMetadata.partitions < 1) { throw new RestException(Status.CONFLICT, "Topic is not partitioned topic"); } diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminResourceTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminResourceTest.java index 757b77504e978..509374da86f82 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminResourceTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminResourceTest.java @@ -98,8 +98,10 @@ public void testValidatePartitionedTopicMetadata() throws Exception { AdminResource resource = mockResource(); resource.setPulsar(pulsar); // validate should pass when topic is partitioned topic + resource.validatePartitionedTopicName(tenant, namespace, Codec.encode(partitionedTopic)); resource.validatePartitionedTopicMetadata(tenant, namespace, Codec.encode(partitionedTopic)); // validate should failed when topic is non-partitioned topic + resource.validatePartitionedTopicName(tenant, namespace, Codec.encode(nonPartitionedTopic)); try { resource.validatePartitionedTopicMetadata(tenant, namespace, Codec.encode(nonPartitionedTopic)); fail("Should fail validation on non-partitioned topic");