diff --git a/aws-lambda-java-events-sdk-transformer/src/main/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformer.java b/aws-lambda-java-events-sdk-transformer/src/main/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformer.java index 09572bdc..65985487 100644 --- a/aws-lambda-java-events-sdk-transformer/src/main/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformer.java +++ b/aws-lambda-java-events-sdk-transformer/src/main/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformer.java @@ -5,18 +5,23 @@ public class DynamodbStreamRecordTransformer { public static StreamRecord toStreamRecordV2(final com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord streamRecord) { + return StreamRecord.builder() .approximateCreationDateTime( - streamRecord.getApproximateCreationDateTime().toInstant() + streamRecord.getApproximateCreationDateTime().toInstant() ) .keys( - DynamodbAttributeValueTransformer.toAttributeValueMapV2(streamRecord.getKeys()) + DynamodbAttributeValueTransformer.toAttributeValueMapV2(streamRecord.getKeys()) ) .newImage( - DynamodbAttributeValueTransformer.toAttributeValueMapV2(streamRecord.getNewImage()) + streamRecord.getNewImage() != null + ? DynamodbAttributeValueTransformer.toAttributeValueMapV2(streamRecord.getNewImage()) + : null ) .oldImage( - DynamodbAttributeValueTransformer.toAttributeValueMapV2(streamRecord.getOldImage()) + streamRecord.getOldImage() != null + ? DynamodbAttributeValueTransformer.toAttributeValueMapV2(streamRecord.getOldImage()) + : null ) .sequenceNumber(streamRecord.getSequenceNumber()) .sizeBytes(streamRecord.getSizeBytes()) diff --git a/aws-lambda-java-events-sdk-transformer/src/test/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformerTest.java b/aws-lambda-java-events-sdk-transformer/src/test/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformerTest.java index 269347b8..5cd3b01b 100644 --- a/aws-lambda-java-events-sdk-transformer/src/test/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformerTest.java +++ b/aws-lambda-java-events-sdk-transformer/src/test/java/com/amazonaws/services/lambda/runtime/events/transformers/dynamodb/DynamodbStreamRecordTransformerTest.java @@ -101,4 +101,24 @@ public void testToStreamRecordV2() { StreamRecord convertedStreamRecord = DynamodbStreamRecordTransformer.toStreamRecordV2(streamRecord_event); Assertions.assertEquals(streamRecord_v2, convertedStreamRecord); } + + @Test + public void testToStreamRecordV2WhenOldImageIsNull() { + com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord streamRecord = streamRecord_event.clone(); + streamRecord.setOldImage(null); + + Assertions.assertDoesNotThrow(() -> { + DynamodbStreamRecordTransformer.toStreamRecordV2(streamRecord); + }); + } + + @Test + public void testToStreamRecordV2WhenNewImageIsNull() { + com.amazonaws.services.lambda.runtime.events.models.dynamodb.StreamRecord streamRecord = streamRecord_event.clone(); + streamRecord.setNewImage(null); + + Assertions.assertDoesNotThrow(() -> { + DynamodbStreamRecordTransformer.toStreamRecordV2(streamRecord); + }); + } } \ No newline at end of file