This is an automated email from the ASF dual-hosted git repository. mmerli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push: new 24605d3 Fix status code of REST API to get list of subscriptions of partitioned topic (#2550) 24605d3 is described below commit 24605d328357e89ae107b549a6f0da2ce1683857 Author: massakam <massa...@yahoo-corp.jp> AuthorDate: Tue Sep 11 12:43:21 2018 +0900 Fix status code of REST API to get list of subscriptions of partitioned topic (#2550) --- .../apache/pulsar/broker/admin/impl/PersistentTopicsBase.java | 6 ++++++ .../test/java/org/apache/pulsar/broker/admin/AdminApiTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java index da51453..9f5c2df 100644 --- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java +++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java @@ -529,6 +529,12 @@ public class PersistentTopicsBase extends AdminResource { // subscriptions subscriptions.addAll(pulsar().getAdminClient().topics() .getSubscriptions(topicName.getPartition(0).toString())); + } catch (PulsarAdminException e) { + if (e.getStatusCode() == Status.NOT_FOUND.getStatusCode()) { + throw new RestException(Status.NOT_FOUND, "Internal topics have not been generated yet"); + } else { + throw new RestException(e); + } } catch (Exception e) { throw new RestException(e); } diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java index c7c090f..187539f 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java @@ -798,6 +798,16 @@ public class AdminApiTest extends MockedPulsarServiceBaseTest { fail(e.getMessage()); } + try { + admin.topics().getSubscriptions(partitionedTopicName); + fail("should have failed"); + } catch (PulsarAdminException e) { + // ok + assertEquals(e.getStatusCode(), Status.NOT_FOUND.getStatusCode()); + } catch (Exception e) { + fail(e.getMessage()); + } + // create consumer and subscription URL pulsarUrl = new URL("http://127.0.0.1" + ":" + BROKER_WEBSERVICE_PORT); PulsarClient client = PulsarClient.builder().serviceUrl(pulsarUrl.toString()).statsInterval(0, TimeUnit.SECONDS)