in src/main/java/com/amazonaws/services/sqs/util/SQSMessageConsumer.java [139:163]
private void handleMessage(Message message) {
if (shuttingDown.get()) {
sqs.changeMessageVisibility(queueUrl, message.getReceiptHandle(), 0);
return;
}
try {
accept(message);
sqs.deleteMessage(queueUrl, message.getReceiptHandle());
} catch (QueueDoesNotExistException e) {
// Ignore
} catch (RuntimeException processingException) {
// TODO-RS: separate accept from delete in exception handling
String errorMessage = "Exception encountered while processing message with ID " + message.getMessageId();
exceptionHandler.accept(new RuntimeException(errorMessage, processingException));
try {
sqs.changeMessageVisibility(queueUrl, message.getReceiptHandle(), 0);
} catch (QueueDoesNotExistException e) {
// Ignore
} catch (RuntimeException cmvException) {
String cmvErrorMessage = "Exception encountered while changing message visibility with ID " + message.getMessageId();
exceptionHandler.accept(new RuntimeException(cmvErrorMessage, cmvException));
}
}
}