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
The following commit(s) were added to refs/heads/branch-2.7 by this push:
new 5fb9eaa Fix DelayedDelivery at the broker level has a default value
(#9030)
5fb9eaa is described below
commit 5fb9eaa905c9ae553823347504a6a37b56a8432b
Author: feynmanlin <[email protected]>
AuthorDate: Wed Dec 23 21:28:53 2020 +0800
Fix DelayedDelivery at the broker level has a default value (#9030)
### Motivation
`delayedDeliveryEnabled` at the broker level is enabled by default, but at
the namespace level is not set.
But now the value can be obtained directly through
`admin.namespaces().getDelayedDelivery(namespace)`.
This makes users very confused, we did not set the policy, but it has value.
Therefore, `null` should be returned by default
(cherry picked from commit 6e74a9bdf6029130c8ff75996f1e8734e2e5af7c)
---
.../java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java | 9 +--------
.../org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java | 9 ++++++---
2 files changed, 7 insertions(+), 11 deletions(-)
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
index 208902e..e091616 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
@@ -2117,14 +2117,7 @@ public abstract class NamespacesBase extends
AdminResource {
protected DelayedDeliveryPolicies internalGetDelayedDelivery() {
validateNamespacePolicyOperation(namespaceName,
PolicyName.DELAYED_DELIVERY, PolicyOperation.READ);
-
- Policies policies = getNamespacePolicies(namespaceName);
- if (policies.delayed_delivery_policies == null) {
- return new
DelayedDeliveryPolicies(config().getDelayedDeliveryTickTimeMillis(),
- config().isDelayedDeliveryEnabled());
- } else {
- return policies.delayed_delivery_policies;
- }
+ return getNamespacePolicies(namespaceName).delayed_delivery_policies;
}
protected InactiveTopicPolicies internalGetInactiveTopic() {
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
index 00d9f21..045d973 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
@@ -26,6 +26,7 @@ import org.apache.pulsar.client.api.*;
import org.apache.pulsar.common.policies.data.ClusterData;
import org.apache.pulsar.common.policies.data.DelayedDeliveryPolicies;
import org.apache.pulsar.common.policies.data.TenantInfo;
+import org.awaitility.Awaitility;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterMethod;
@@ -63,11 +64,13 @@ public class AdminApiDelayedDelivery extends
MockedPulsarServiceBaseTest {
public void testDisableDelayedDelivery() throws Exception {
admin.namespaces().createNamespace("delayed-delivery-messages/default-ns");
String namespace = "delayed-delivery-messages/default-ns";
-
assertTrue(admin.namespaces().getDelayedDelivery(namespace).isActive());
+ assertNull(admin.namespaces().getDelayedDelivery(namespace));
DelayedDeliveryPolicies delayedDeliveryPolicies = new
DelayedDeliveryPolicies(2000, false);
admin.namespaces().setDelayedDeliveryMessages(namespace,
delayedDeliveryPolicies);
-
+ //zk update takes time
+ Awaitility.await().atMost(3, TimeUnit.SECONDS).until(() ->
+ admin.namespaces().getDelayedDelivery(namespace) != null);
assertFalse(admin.namespaces().getDelayedDelivery(namespace).isActive());
assertEquals(2000,
admin.namespaces().getDelayedDelivery(namespace).getTickTime());
}
@@ -77,7 +80,7 @@ public class AdminApiDelayedDelivery extends
MockedPulsarServiceBaseTest {
admin.namespaces().createNamespace("delayed-delivery-messages/default-enable-service-conf");
String namespace =
"delayed-delivery-messages/default-enable-service-conf";
String topicName =
"persistent://delayed-delivery-messages/default-enable-service-conf/test";
-
assertTrue(admin.namespaces().getDelayedDelivery(namespace).isActive());
+ assertNull(admin.namespaces().getDelayedDelivery(namespace));
@Cleanup
Consumer<String> consumer = pulsarClient.newConsumer(Schema.STRING)