This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch fix/CAMEL-24156
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 37bfe94d9691ceead22daea93d0c75fee9235375
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jul 17 17:19:18 2026 +0200

    CAMEL-24156: camel-aws2-sqs/sns - Fix FIFO queue/topic handling
    
    - SQS: Skip per-message DelaySeconds when delayQueue=true (delay is
      queue-level) or when the queue is FIFO (AWS rejects per-message delay)
    - SNS: Set ContentBasedDeduplication attribute on auto-created FIFO topics
      when useContentBasedDeduplication strategy is configured
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../main/java/org/apache/camel/component/aws2/sns/Sns2Endpoint.java | 3 +++
 .../main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git 
a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Endpoint.java
 
b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Endpoint.java
index 10e13d46e43d..df70fb1fb870 100644
--- 
a/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Endpoint.java
+++ 
b/components/camel-aws/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Endpoint.java
@@ -146,6 +146,9 @@ public class Sns2Endpoint extends DefaultEndpoint 
implements HeaderFilterStrateg
 
             if (configuration.isFifoTopic()) {
                 attributes.put("FifoTopic", "true");
+                if (configuration.getMessageDeduplicationIdStrategy() 
instanceof NullMessageDeduplicationIdStrategy) {
+                    attributes.put("ContentBasedDeduplication", "true");
+                }
                 builder.attributes(attributes);
             }
 
diff --git 
a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
 
b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
index 0518d36791d7..8a962e559029 100644
--- 
a/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
+++ 
b/components/camel-aws/camel-aws2-sqs/src/main/java/org/apache/camel/component/aws2/sqs/Sqs2Producer.java
@@ -268,6 +268,9 @@ public class Sqs2Producer extends DefaultProducer {
     }
 
     private void addDelay(SendMessageRequest.Builder request, Exchange 
exchange) {
+        if (getEndpoint().getConfiguration().isDelayQueue() || 
getEndpoint().getConfiguration().isFifoQueue()) {
+            return;
+        }
         Integer headerValue = 
exchange.getIn().getHeader(Sqs2Constants.DELAY_HEADER, Integer.class);
         Integer delayValue;
         if (ObjectHelper.isEmpty(headerValue)) {
@@ -284,6 +287,9 @@ public class Sqs2Producer extends DefaultProducer {
     }
 
     private void addDelay(SendMessageBatchRequestEntry.Builder request, 
Exchange exchange) {
+        if (getEndpoint().getConfiguration().isDelayQueue() || 
getEndpoint().getConfiguration().isFifoQueue()) {
+            return;
+        }
         Integer headerValue = 
exchange.getIn().getHeader(Sqs2Constants.DELAY_HEADER, Integer.class);
         Integer delayValue;
         if (ObjectHelper.isEmpty(headerValue)) {

Reply via email to