You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/04/04 12:33:23 UTC
[pulsar] 14/15: [fix][client] ConsumerBuilderImpl can not set null to deadLetterPolicy (#14980)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit a4c6ae42caf3563ca17e3425bda0ccba990062f5
Author: JiangHaiting <ji...@apache.org>
AuthorDate: Sat Apr 2 11:16:02 2022 +0800
[fix][client] ConsumerBuilderImpl can not set null to deadLetterPolicy (#14980)
`ConsumerBuilderImpl` can not set null to deadLetterPolicy if it's already assigned a non-null value.
Calls `conf.setDeadLetterPolicy` if `deadLetterPolicy` is null.
(cherry picked from commit 2f530717851d5e852b4489ff70184d14634ef2b9)
---
.../pulsar/client/impl/ConsumerBuilderImpl.java | 3 +--
.../client/impl/ConsumerBuilderImplTest.java | 29 +++++++++++++---------
2 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java
index d01a2076d8d..5857006e876 100644
--- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java
+++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ConsumerBuilderImpl.java
@@ -426,10 +426,9 @@ public class ConsumerBuilderImpl<T> implements ConsumerBuilder<T> {
if (conf.getAckTimeoutMillis() == 0) {
conf.setAckTimeoutMillis(DEFAULT_ACK_TIMEOUT_MILLIS_FOR_DEAD_LETTER);
}
-
checkArgument(deadLetterPolicy.getMaxRedeliverCount() > 0, "MaxRedeliverCount must be > 0.");
- conf.setDeadLetterPolicy(deadLetterPolicy);
}
+ conf.setDeadLetterPolicy(deadLetterPolicy);
return this;
}
diff --git a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConsumerBuilderImplTest.java b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConsumerBuilderImplTest.java
index 36ea53f31ef..d648ee75af7 100644
--- a/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConsumerBuilderImplTest.java
+++ b/pulsar-client/src/test/java/org/apache/pulsar/client/impl/ConsumerBuilderImplTest.java
@@ -18,6 +18,17 @@
*/
package org.apache.pulsar.client.impl;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertNotNull;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.Pattern;
import org.apache.pulsar.client.api.BatchReceivePolicy;
import org.apache.pulsar.client.api.Consumer;
import org.apache.pulsar.client.api.DeadLetterPolicy;
@@ -29,18 +40,6 @@ import org.apache.pulsar.client.impl.conf.ConsumerConfigurationData;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Pattern;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.testng.Assert.assertNotNull;
-
/**
* Unit tests of {@link ConsumerBuilderImpl}.
*/
@@ -298,6 +297,12 @@ public class ConsumerBuilderImplTest {
.build());
}
+ @Test
+ public void testNullDeadLetterPolicy() {
+ consumerBuilderImpl.deadLetterPolicy(null);
+ verify(consumerBuilderImpl.getConf()).setDeadLetterPolicy(null);
+ }
+
@Test
public void testConsumerBuilderImplWhenNumericPropertiesAreValid() {
consumerBuilderImpl.negativeAckRedeliveryDelay(1, TimeUnit.MILLISECONDS);