This is an automated email from the ASF dual-hosted git repository. lhotari pushed a commit to branch branch-4.0 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 85bccb40623c7f7c014fc8c676ad2b7d2e88bf55 Author: Oneby <[email protected]> AuthorDate: Mon Dec 15 09:15:30 2025 +0800 [fix][client] Fix invalid parameter type passed to Map.get in TopicsImpl.getListAsync method (#25069) (cherry picked from commit f9bb2e45afd098a88ec67c04f63b2c18891e9bfb) --- .../apache/pulsar/broker/admin/AdminApi2Test.java | 27 +++++++++++++++++++--- .../pulsar/client/admin/internal/TopicsImpl.java | 2 +- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java index 5fdd6fdee07..71def6a3f66 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApi2Test.java @@ -91,6 +91,7 @@ import org.apache.pulsar.broker.testcontext.MockEntryFilterProvider; import org.apache.pulsar.broker.testcontext.PulsarTestContext; import org.apache.pulsar.client.admin.GrantTopicPermissionOptions; import org.apache.pulsar.client.admin.ListNamespaceTopicsOptions; +import org.apache.pulsar.client.admin.ListTopicsOptions; import org.apache.pulsar.client.admin.Mode; import org.apache.pulsar.client.admin.PulsarAdmin; import org.apache.pulsar.client.admin.PulsarAdminException; @@ -1053,9 +1054,29 @@ public class AdminApi2Test extends MockedPulsarServiceBaseTest { } } - Set<String> topicsInNs = Sets - .newHashSet( - admin.topics().getList(namespace, null, Collections.singletonMap(QueryParam.Bundle, bundle))); + Set<String> topicsInNs; + // 1. test recommended sync method + ListTopicsOptions listTopicsOptions = ListTopicsOptions.builder().bundle(bundle).build(); + topicsInNs = Sets.newHashSet(admin.topics().getList(namespace, null, listTopicsOptions)); + assertEquals(topicsInNs.size(), topics.size()); + topicsInNs.removeAll(topics); + assertEquals(topicsInNs.size(), 0); + + // 2. test recommended async method + topicsInNs = Sets.newHashSet(admin.topics().getListAsync(namespace, null, listTopicsOptions).get()); + assertEquals(topicsInNs.size(), topics.size()); + topicsInNs.removeAll(topics); + assertEquals(topicsInNs.size(), 0); + + // 3. test deprecated sync method + Map<QueryParam, Object> queryOption = Collections.singletonMap(QueryParam.Bundle, bundle); + topicsInNs = Sets.newHashSet(admin.topics().getList(namespace, null, queryOption)); + assertEquals(topicsInNs.size(), topics.size()); + topicsInNs.removeAll(topics); + assertEquals(topicsInNs.size(), 0); + + // 4. test deprecated async method + topicsInNs = Sets.newHashSet(admin.topics().getListAsync(namespace, null, queryOption).get()); assertEquals(topicsInNs.size(), topics.size()); topicsInNs.removeAll(topics); assertEquals(topicsInNs.size(), 0); diff --git a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java index 8a1e0e0f839..11dd69a23ce 100644 --- a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java +++ b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/TopicsImpl.java @@ -184,7 +184,7 @@ public class TopicsImpl extends BaseResource implements Topics { Map<QueryParam, Object> params) { ListTopicsOptions options = ListTopicsOptions .builder() - .bundle((String) params.get(QueryParam.Bundle.value)) + .bundle((String) params.get(QueryParam.Bundle)) .build(); return getListAsync(namespace, topicDomain, options); }
