This is an automated email from the ASF dual-hosted git repository.
mattrpav pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/main by this push:
new 9956dd6 [AMQ-8440] Set sendDuplicateFromStoreToDLQ to 'false' by
default (#773)
9956dd6 is described below
commit 9956dd602a57fc8b592ad9df9fc4bc93b5408dab
Author: Matt Pavlovich <[email protected]>
AuthorDate: Thu Feb 24 08:45:35 2022 -0600
[AMQ-8440] Set sendDuplicateFromStoreToDLQ to 'false' by default (#773)
---
.../apache/activemq/broker/region/BaseDestination.java | 2 +-
.../activemq/broker/region/policy/PolicyEntry.java | 2 +-
.../test/java/org/apache/activemq/PolicyEntryTest.java | 4 ++--
...EntryTest-policy-sendDuplicateFromStoreToDLQ-mod.xml | 2 +-
.../broker/policy/SendDuplicateFromStoreToDLQTest.java | 17 +++++++++++++++--
5 files changed, 20 insertions(+), 7 deletions(-)
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/region/BaseDestination.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/region/BaseDestination.java
index 1b46c16..c2a7a01 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/region/BaseDestination.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/region/BaseDestination.java
@@ -88,7 +88,7 @@ public abstract class BaseDestination implements Destination {
private boolean advisoryForDelivery;
private boolean advisoryForConsumed;
private boolean sendAdvisoryIfNoConsumers;
- private boolean sendDuplicateFromStoreToDLQ = true;
+ private boolean sendDuplicateFromStoreToDLQ = false;
private boolean includeBodyForAdvisory;
protected final DestinationStatistics destinationStatistics = new
DestinationStatistics();
protected final BrokerService brokerService;
diff --git
a/activemq-broker/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
b/activemq-broker/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
index 862d5dd..0a4db91 100644
---
a/activemq-broker/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
+++
b/activemq-broker/src/main/java/org/apache/activemq/broker/region/policy/PolicyEntry.java
@@ -51,7 +51,7 @@ public class PolicyEntry extends DestinationMapEntry {
private DispatchPolicy dispatchPolicy;
private SubscriptionRecoveryPolicy subscriptionRecoveryPolicy;
private boolean sendAdvisoryIfNoConsumers;
- private boolean sendDuplicateFromStoreToDLQ = true;
+ private boolean sendDuplicateFromStoreToDLQ = false;
private DeadLetterStrategy deadLetterStrategy =
Destination.DEFAULT_DEAD_LETTER_STRATEGY;
private PendingMessageLimitStrategy pendingMessageLimitStrategy;
private MessageEvictionStrategy messageEvictionStrategy;
diff --git
a/activemq-runtime-config/src/test/java/org/apache/activemq/PolicyEntryTest.java
b/activemq-runtime-config/src/test/java/org/apache/activemq/PolicyEntryTest.java
index b486c30..5ae7b1b 100644
---
a/activemq-runtime-config/src/test/java/org/apache/activemq/PolicyEntryTest.java
+++
b/activemq-runtime-config/src/test/java/org/apache/activemq/PolicyEntryTest.java
@@ -52,9 +52,9 @@ public class PolicyEntryTest extends RuntimeConfigTestSupport
{
startBroker(brokerConfig);
assertTrue("broker alive", brokerService.isStarted());
- verifyBooleanField("AMQ.8397", "sendDuplicateFromStoreToDLQ", true);
- applyNewConfig(brokerConfig, configurationSeed +
"-policy-sendDuplicateFromStoreToDLQ-mod", SLEEP);
verifyBooleanField("AMQ.8397", "sendDuplicateFromStoreToDLQ", false);
+ applyNewConfig(brokerConfig, configurationSeed +
"-policy-sendDuplicateFromStoreToDLQ-mod", SLEEP);
+ verifyBooleanField("AMQ.8397", "sendDuplicateFromStoreToDLQ", true);
}
@Test
diff --git
a/activemq-runtime-config/src/test/resources/org/apache/activemq/policyEntryTest-policy-sendDuplicateFromStoreToDLQ-mod.xml
b/activemq-runtime-config/src/test/resources/org/apache/activemq/policyEntryTest-policy-sendDuplicateFromStoreToDLQ-mod.xml
index 0984792..55f913a 100644
---
a/activemq-runtime-config/src/test/resources/org/apache/activemq/policyEntryTest-policy-sendDuplicateFromStoreToDLQ-mod.xml
+++
b/activemq-runtime-config/src/test/resources/org/apache/activemq/policyEntryTest-policy-sendDuplicateFromStoreToDLQ-mod.xml
@@ -28,7 +28,7 @@
<destinationPolicy>
<policyMap>
<policyEntries>
- <policyEntry queue="AMQ.8397" sendDuplicateFromStoreToDLQ="false"/>
+ <policyEntry queue="AMQ.8397" sendDuplicateFromStoreToDLQ="true"/>
</policyEntries>
</policyMap>
</destinationPolicy>
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/policy/SendDuplicateFromStoreToDLQTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/policy/SendDuplicateFromStoreToDLQTest.java
index adfc88d..d052ea2 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/policy/SendDuplicateFromStoreToDLQTest.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/policy/SendDuplicateFromStoreToDLQTest.java
@@ -17,6 +17,7 @@
package org.apache.activemq.broker.policy;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.io.File;
@@ -96,6 +97,14 @@ public class SendDuplicateFromStoreToDLQTest {
applySendDuplicateFromStoreToDLQPolicy(false);
doProcessSendDuplicateFromStoreToDLQ(false);
}
+
+ @Test
+ public void testSendDuplicateFromStoreToDLQDefaultValue() throws Exception
{
+ PolicyMap policyMap = applySendDuplicateFromStoreToDLQPolicy(null);
+
assertFalse(policyMap.getDefaultEntry().isSendDuplicateFromStoreToDLQ());
+ org.apache.activemq.broker.region.Queue queue =
(org.apache.activemq.broker.region.Queue)broker.getDestination(new
ActiveMQQueue("AMQ.8440"));
+ assertFalse(queue.isSendDuplicateFromStoreToDLQ());
+ }
protected void doProcessSendDuplicateFromStoreToDLQ(boolean enabled)
throws Exception {
createQueue("AMQ.8397");
@@ -139,10 +148,14 @@ public class SendDuplicateFromStoreToDLQTest {
}
}
- private PolicyMap applySendDuplicateFromStoreToDLQPolicy(boolean enabled) {
+ private PolicyMap applySendDuplicateFromStoreToDLQPolicy(Boolean enabled) {
PolicyMap policyMap = new PolicyMap();
PolicyEntry defaultEntry = new PolicyEntry();
- defaultEntry.setSendDuplicateFromStoreToDLQ(enabled);
+
+ if(enabled != null) {
+ defaultEntry.setSendDuplicateFromStoreToDLQ(enabled);
+ }
+
defaultEntry.setDeadLetterStrategy(new IndividualDeadLetterStrategy());
policyMap.setDefaultEntry(defaultEntry);
broker.setDestinationPolicy(policyMap);