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)

Reply via email to