in src/main/java/com/amazon/sqs/javamessaging/AmazonSQSExtendedClient.java [185:213]
public SendMessageResponse sendMessage(SendMessageRequest sendMessageRequest) {
//TODO: Clone request since it's modified in this method and will cause issues if the client reuses request object.
if (sendMessageRequest == null) {
String errorMessage = "sendMessageRequest cannot be null.";
LOG.error(errorMessage);
throw SdkClientException.create(errorMessage);
}
SendMessageRequest.Builder sendMessageRequestBuilder = sendMessageRequest.toBuilder();
sendMessageRequest = appendUserAgent(sendMessageRequestBuilder).build();
if (!clientConfiguration.isPayloadSupportEnabled()) {
return super.sendMessage(sendMessageRequest);
}
if (StringUtils.isEmpty(sendMessageRequest.messageBody())) {
String errorMessage = "messageBody cannot be null or empty.";
LOG.error(errorMessage);
throw SdkClientException.create(errorMessage);
}
//Check message attributes for ExtendedClient related constraints
checkMessageAttributes(sendMessageRequest.messageAttributes());
if (clientConfiguration.isAlwaysThroughS3() || isLarge(sendMessageRequest)) {
sendMessageRequest = storeMessageInS3(sendMessageRequest);
}
return super.sendMessage(sendMessageRequest);
}