Amazon SQS message visibility changed without a status check Info

When you change Amazon SQS message visibility, check for MessageNotInFlight exceptions that signify that the specified message is not in flight.

Detector ID
java/amazon-sqs-change-message-visibility-check-status@v1.0
Category
Common Weakness Enumeration (CWE) external icon
-

Noncompliant example

1public void changeSqsMessageVisibilityNoncompliant(AmazonSQS amazonSqsClient, ChangeMessageVisibilityRequest request) {
2    // Noncompliant: MessageNotInFlight exception is not checked when changing message visibility.
3    amazonSqsClient.changeMessageVisibility(request);
4}

Compliant example

1public void changeSqsMessageVisibilityCompliant(AmazonSQS amazonSqsClient, ChangeMessageVisibilityRequest request) {
2    // Compliant: MessageNotInFlight exception is checked when changing message visibility.
3    try {
4        amazonSqsClient.changeMessageVisibility(request);
5    } catch (MessageNotInflightException ex) {
6        log.info(format("Message with receipt handle %s already visible. Too late to abandon", request.getReceiptHandle()));
7    } catch (Exception ex) {
8        log.error(format("Caught unknown exception %s", request.getReceiptHandle()), ex);
9    }
10}