This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.7 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 5fc5f65b730557ee8ecaef5f1eb0e5ad4a4f28a9 Author: feynmanlin <[email protected]> AuthorDate: Mon Feb 1 18:00:52 2021 +0800 Fix setting backlogQuota will always succeed (#9382) Since SetBacklogQuota does not have a return, it can actually be updated successfully even if there is a check error. (cherry picked from commit ebd70de635f5a5fc10e71210df3e67333dece7f3) --- .../pulsar/broker/admin/TopicPoliciesTest.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java index cf7353d..63d382b 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/TopicPoliciesTest.java @@ -199,6 +199,29 @@ public class TopicPoliciesTest extends MockedPulsarServiceBaseTest { } @Test + public void testCheckBacklogQuotaFailed() throws Exception { + RetentionPolicies retentionPolicies = new RetentionPolicies(10, 10); + String namespace = TopicName.get(testTopic).getNamespace(); + admin.namespaces().setRetention(namespace, retentionPolicies); + + Awaitility.await().atMost(3, TimeUnit.SECONDS) + .untilAsserted(() -> Assert.assertEquals(admin.namespaces().getRetention(namespace), retentionPolicies)); + + BacklogQuota backlogQuota = + new BacklogQuota(10 * 1024 * 1024, BacklogQuota.RetentionPolicy.consumer_backlog_eviction); + try { + admin.topics().setBacklogQuota(testTopic, backlogQuota); + Assert.fail(); + } catch (PulsarAdminException e) { + Assert.assertEquals(e.getStatusCode(), 412); + } + //Ensure that the cache has not been updated after a long time + Awaitility.await().atLeast(1, TimeUnit.SECONDS); + assertNull(admin.topics().getBacklogQuotaMap(testTopic) + .get(BacklogQuota.BacklogQuotaType.destination_storage)); + } + + @Test public void testCheckRetention() throws Exception { BacklogQuota backlogQuota = new BacklogQuota(10 * 1024 * 1024, BacklogQuota.RetentionPolicy.consumer_backlog_eviction);
