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 64b6171e753c30e841558317e3444141e0fe03d0
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jul 17 17:23:45 2026 +0200

    CAMEL-24156: camel-aws2-ddb - Fix numeric type mapping in JSON transformer
    
    Use Number instead of separate Integer/Double checks so Long, BigInteger,
    BigDecimal, and Float values are stored as DynamoDB Number (N) type instead
    of String (S). Also fix List detection to use Number so List<Long> and
    List<Double> become NumberSet (NS) instead of StringSet (SS).
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git 
a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java
 
b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java
index 123c85a03066..78fe26011a75 100644
--- 
a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java
+++ 
b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/transform/Ddb2JsonDataTypeTransformer.java
@@ -194,11 +194,7 @@ public class Ddb2JsonDataTypeTransformer extends 
Transformer {
             return AttributeValue.builder().s(value.toString()).build();
         }
 
-        if (value instanceof Integer) {
-            return AttributeValue.builder().n(value.toString()).build();
-        }
-
-        if (value instanceof Double) {
+        if (value instanceof Number) {
             return AttributeValue.builder().n(value.toString()).build();
         }
 
@@ -220,7 +216,7 @@ public class Ddb2JsonDataTypeTransformer extends 
Transformer {
 
             if (values.isEmpty()) {
                 return AttributeValue.builder().ss().build();
-            } else if (values.get(0) instanceof Integer) {
+            } else if (values.get(0) instanceof Number) {
                 return 
AttributeValue.builder().ns(values.stream().map(Object::toString).collect(Collectors.toList())).build();
             } else {
                 return 
AttributeValue.builder().ss(values.stream().map(Object::toString).collect(Collectors.toList())).build();

Reply via email to