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 <[email protected]>
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)