in src/main/java/software/amazon/sns/AmazonSNSExtendedClient.java [83:111]
public PublishResult publish(PublishRequest publishRequest) {
if (publishRequest == null || StringUtils.isNullOrEmpty(publishRequest.getMessage())) {
return super.publish(publishRequest);
}
if (!StringUtils.isNullOrEmpty(publishRequest.getMessageStructure()) &&
publishRequest.getMessageStructure().equals(MULTIPLE_PROTOCOL_MESSAGE_STRUCTURE)) {
String errorMessage = "SNS extended client does not support sending JSON messages.";
LOGGER.error(errorMessage);
throw new AmazonClientException(errorMessage);
}
publishRequest.getRequestClientOptions().appendUserAgent(USER_AGENT_HEADER);
long messageAttributesSize = getMsgAttributesSize(publishRequest.getMessageAttributes());
long messageBodySize = Util.getStringSizeInBytes(publishRequest.getMessage());
if (!shouldExtendedStoreBeUsed(messageAttributesSize + messageBodySize)) {
return super.publish(publishRequest);
}
checkMessageAttributes(publishRequest.getMessageAttributes());
checkSizeOfMessageAttributes(messageAttributesSize);
PublishRequest clonedPublishRequest = copyPublishRequest(publishRequest);
publishRequest = storeMessageInExtendedStore(clonedPublishRequest, messageAttributesSize);
return super.publish(publishRequest);
}