Open
Description
I'm using DynamoDb Enhanced library version 2.15.82
. Recently, aws-lambda-java-events-sdk-transformer
version 3.0.2
causes a break in the functionality when trying to transform empty list. Empty list is transformed to null
which for DynamoDb Enhanced library expects an empty list, and causes DynamoDB Enhanced library to throw the below stack trace.
java.lang.IllegalStateException: Unable to convert attribute value: AttributeValue()
software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.EnhancedAttributeValue.fromAttributeValue(EnhancedAttributeValue.java:352) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter$Delegate.transformTo(ListAttributeConverter.java:154) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter.transformTo(ListAttributeConverter.java:120) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.ListAttributeConverter.transformTo(ListAttributeConverter.java:82) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.internal.mapper.StaticAttributeType.attributeValueToObject(StaticAttributeType.java:44) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.internal.mapper.ResolvedImmutableAttribute.lambda$create$1(ResolvedImmutableAttribute.java:61) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.mapper.StaticImmutableTableSchema.mapToItem(StaticImmutableTableSchema.java:458) ~[dynamodb-enhanced-2.15.82.jar:na]
software.amazon.awssdk.enhanced.dynamodb.mapper.WrappedTableSchema.mapToItem(WrappedTableSchema.java:54) ~[dynamodb-enhanced-2.15.82.jar:na]
Further investigation points to the below code in DynamodbAttributeValueTransformer
that's causing the issue
else if (Objects.nonNull(value.getL())) {
return AttributeValue.builder()
.l(value.getL().isEmpty()
? null
: value.getL().stream()
.map(DynamodbAttributeValueTransformer::toAttributeValueV2)
.collect(Collectors.toList()))
.build();
}
I noticed this change happens from aws-lambda-java-events-sdk-transformer
version 2.0.8
to 3.0.0
on commit 3e71a17c57ba6c99734c4633a4f412fd2d5b6b42
Any advice on this? Is there a reason for this code change that causes a break in functionality?
Metadata
Metadata
Assignees
Labels
No labels