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 cd185d1 Fix status code of REST API to get partitioned topic stats (#2542) cd185d1 is described below commit cd185d1d9bb3319cae3543c561454d40ac54d899 Author: massakam <massa...@yahoo-corp.jp> AuthorDate: Sun Sep 9 04:50:52 2018 +0900 Fix status code of REST API to get partitioned topic stats (#2542) --- .../apache/pulsar/broker/admin/impl/PersistentTopicsBase.java | 6 ++++++ .../java/org/apache/pulsar/broker/admin/AdminApiTest.java | 11 +++++++++++ 2 files changed, 17 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 f85c617..da51453 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 @@ -604,6 +604,12 @@ public class PersistentTopicsBase extends AdminResource { stats.add(partitionStats); stats.partitions.put(topicName.getPartition(i).toString(), partitionStats); } + } 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 ae72737..c7c090f 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 @@ -53,6 +53,7 @@ import java.util.concurrent.TimeUnit; import javax.ws.rs.client.InvocationCallback; import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.Response.Status; import lombok.extern.slf4j.Slf4j; @@ -787,6 +788,16 @@ public class AdminApiTest extends MockedPulsarServiceBaseTest { assertEquals(admin.topics().getPartitionedTopicMetadata("persistent://prop-xyz/ns1/ds2").partitions, 0); + try { + admin.topics().getPartitionedStats(partitionedTopicName, false); + 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)