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();
