diff --git a/pom.xml b/pom.xml
index a351ebff5..4f2e5562e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,7 +60,7 @@
1.9.7
2.17.179
2.11.1
- 1.1.1
+ 2.1.2
UTF-8
1.2.1
3.11.0
diff --git a/powertools-sqs/pom.xml b/powertools-sqs/pom.xml
index bdeafe273..76abe5a93 100644
--- a/powertools-sqs/pom.xml
+++ b/powertools-sqs/pom.xml
@@ -49,6 +49,10 @@
com.amazonaws
aws-lambda-java-core
+
+ software.amazon.payloadoffloading
+ payloadoffloading-common
+
com.amazonaws
aws-lambda-java-events
diff --git a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
index 072d903d0..588d434d7 100644
--- a/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
+++ b/powertools-sqs/src/main/java/software/amazon/lambda/powertools/sqs/internal/SqsLargeMessageAspect.java
@@ -3,6 +3,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import java.util.function.Function;
import com.amazonaws.services.lambda.runtime.Context;
@@ -68,7 +69,7 @@ public static List processMessages(final List reco
for (SQSMessage sqsMessage : records) {
if (isBodyLargeMessagePointer(sqsMessage.getBody())) {
- PayloadS3Pointer s3Pointer = PayloadS3Pointer.fromJson(sqsMessage.getBody())
+ PayloadS3Pointer s3Pointer = Optional.ofNullable(PayloadS3Pointer.fromJson(sqsMessage.getBody()))
.orElseThrow(() -> new FailedProcessingLargePayloadException(format("Failed processing SQS body to extract S3 details. [ %s ].", sqsMessage.getBody())));
ResponseInputStream s3Object = callS3Gracefully(s3Pointer, pointer -> {
diff --git a/powertools-sqs/src/main/java/software/amazon/payloadoffloading/PayloadS3Pointer.java b/powertools-sqs/src/main/java/software/amazon/payloadoffloading/PayloadS3Pointer.java
deleted file mode 100644
index 078b9a773..000000000
--- a/powertools-sqs/src/main/java/software/amazon/payloadoffloading/PayloadS3Pointer.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package software.amazon.payloadoffloading;
-
-import java.util.Optional;
-
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.ObjectWriter;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static java.util.Optional.empty;
-import static java.util.Optional.ofNullable;
-
-public class PayloadS3Pointer {
- private static final Logger LOG = LoggerFactory.getLogger(PayloadS3Pointer.class);
- private static final ObjectMapper objectMapper = new ObjectMapper();
-
- private String s3BucketName;
- private String s3Key;
-
- static {
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
- objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL);
- }
-
- private PayloadS3Pointer() {
-
- }
-
- public String getS3BucketName() {
- return this.s3BucketName;
- }
-
- public String getS3Key() {
- return this.s3Key;
- }
-
- public static Optional fromJson(String s3PointerJson) {
- try {
- return ofNullable(objectMapper.readValue(s3PointerJson, PayloadS3Pointer.class));
- } catch (Exception e) {
- LOG.error("Failed to read the S3 object pointer from given string.", e);
- return empty();
- }
- }
-
- public Optional toJson() {
- try {
- ObjectWriter objectWriter = objectMapper.writer();
- return ofNullable(objectWriter.writeValueAsString(this));
-
- } catch (Exception e) {
- LOG.error("Failed to convert S3 object pointer to text.", e);
- return empty();
- }
- }
-}