diff --git a/README.md b/README.md
index b081ebb..a91cfc6 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ For more information on using the amazon-sqs-java-extended-client-lib, see our g
com.amazonaws
amazon-sqs-java-extended-client-lib
- 2.0.1
+ 2.0.2
jar
```
diff --git a/pom.xml b/pom.xml
index 489c34c..7c4fb2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.amazonaws
amazon-sqs-java-extended-client-lib
- 2.0.1
+ 2.0.2
jar
Amazon SQS Extended Client Library for Java
An extension to the Amazon SQS client that enables sending and receiving messages up to 2GB via Amazon S3.
diff --git a/src/test/java/com/amazon/sqs/javamessaging/AmazonSQSExtendedClientTest.java b/src/test/java/com/amazon/sqs/javamessaging/AmazonSQSExtendedClientTest.java
index c2f5451..d2e7798 100644
--- a/src/test/java/com/amazon/sqs/javamessaging/AmazonSQSExtendedClientTest.java
+++ b/src/test/java/com/amazon/sqs/javamessaging/AmazonSQSExtendedClientTest.java
@@ -59,6 +59,7 @@
import static com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.USER_AGENT_NAME;
import static com.amazon.sqs.javamessaging.AmazonSQSExtendedClient.USER_AGENT_VERSION;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doThrow;
@@ -429,6 +430,34 @@ public void testWhenMessageBatchIsSentThenOnlyMessagesLargerThanThresholdAreStor
verify(mockS3, times(8)).putObject(isA(PutObjectRequest.class), isA(RequestBody.class));
}
+ @Test
+ public void testWhenMessageBatchIsLargeS3PointerIsCorrectlySentToSQSAndNotOriginalMessage() {
+ String messageBody = generateStringWithLength(LESS_THAN_SQS_SIZE_LIMIT);
+ ExtendedClientConfiguration extendedClientConfiguration = new ExtendedClientConfiguration()
+ .withPayloadSupportEnabled(mockS3, S3_BUCKET_NAME).withAlwaysThroughS3(true);
+
+ SqsClient sqsExtended = spy(new AmazonSQSExtendedClient(mockSqsBackend, extendedClientConfiguration));
+
+ List batchEntries = new ArrayList();
+ for (int i = 0; i < 10; i++) {
+ SendMessageBatchRequestEntry entry = SendMessageBatchRequestEntry.builder()
+ .id("entry_" + i)
+ .messageBody(messageBody)
+ .build();
+ batchEntries.add(entry);
+ }
+ SendMessageBatchRequest batchRequest = SendMessageBatchRequest.builder().queueUrl(SQS_QUEUE_URL).entries(batchEntries).build();
+
+ sqsExtended.sendMessageBatch(batchRequest);
+
+ ArgumentCaptor sendMessageRequestCaptor = ArgumentCaptor.forClass(SendMessageBatchRequest.class);
+ verify(mockSqsBackend).sendMessageBatch(sendMessageRequestCaptor.capture());
+
+ for (SendMessageBatchRequestEntry entry : sendMessageRequestCaptor.getValue().entries()) {
+ assertNotEquals(messageBody, entry.messageBody());
+ }
+ }
+
@Test
public void testWhenSmallMessageIsSentThenNoAttributeIsAdded() {
String messageBody = generateStringWithLength(LESS_THAN_SQS_SIZE_LIMIT);