in src/main/java/com/amazon/sqs/javamessaging/AmazonSQSExtendedClient.java [602:637]
public SendMessageBatchResponse sendMessageBatch(SendMessageBatchRequest sendMessageBatchRequest) {
if (sendMessageBatchRequest == null) {
String errorMessage = "sendMessageBatchRequest cannot be null.";
LOG.error(errorMessage);
throw SdkClientException.create(errorMessage);
}
SendMessageBatchRequest.Builder sendMessageBatchRequestBuilder = sendMessageBatchRequest.toBuilder();
appendUserAgent(sendMessageBatchRequestBuilder);
sendMessageBatchRequest = sendMessageBatchRequestBuilder.build();
if (!clientConfiguration.isPayloadSupportEnabled()) {
return super.sendMessageBatch(sendMessageBatchRequest);
}
List<SendMessageBatchRequestEntry> batchEntries = new ArrayList<>(sendMessageBatchRequest.entries().size());
boolean hasS3Entries = false;
for (SendMessageBatchRequestEntry entry : sendMessageBatchRequest.entries()) {
//Check message attributes for ExtendedClient related constraints
checkMessageAttributes(entry.messageAttributes());
if (clientConfiguration.isAlwaysThroughS3() || isLarge(entry)) {
entry = storeMessageInS3(entry);
hasS3Entries = true;
}
batchEntries.add(entry);
}
if (hasS3Entries) {
sendMessageBatchRequest = sendMessageBatchRequest.toBuilder().entries(batchEntries).build();
}
return super.sendMessageBatch(sendMessageBatchRequest);
}