Low

Showing all detectors for the Java language with low severity.

Poor error handling java rule

Checks if the catch block handles a broad swath of exceptions.

Inefficient usage of Transaction library from AWS Labs

The AWS Labs Transactions Library is a client-side solution and less efficient compared to DynamoDB native transactions.

Inefficient exception handling

Throwing too many exceptions can cause performance issues.

Error-prone AWS IAM policy creation

Manually creating text-based IAM policies is error-prone.

Inefficient Amazon S3 manual pagination

Use S3Objects.withPrefix() instead of manually paginating results.

Misconfigured Concurrency

Misconfigured CompletableFuture.get or Future.get.

Inefficient polling of AWS resource

Custom polling can be inefficient and prone to error. Consider using AWS waiters instead.

Insecure cookie

Insecure cookies can lead to unencrypted transmission of sensitive data.

Backward compatibility breaks with error message parsing

Maintain your code's backward compatibility by checking the status code instead of parsing the error message.

Inefficient map entry iteration

Iterating on Map entries is more efficient than iterating on the keys and asking for their respective values.

Missing S3 bucket owner condition

Not setting the S3 bucket owner condition might introduce a risk of accidentally using a wrong bucket.

Check uncaught exceptions

Check and suggest to catch all uncaught AWS API exceptions.

Insufficient use of name in Amazon SQS queue

Provide the full URL for the Amazon SQS queue.

Missing check on the value returned by ResultSet.next

Missing check on the value returned by ResultSet.next can cause your application to crash.

Use an enum to specify an AWS Region

To minimize the risk of error, use an enum instead of a string to specify an AWS Region.

Ignored output of DynamoDBMapper operations

Check if errors are returned by DynamoDBMapper's BatchWrite operations.

Inefficient retrieval of first page of DynamoDB results

Using queryPage followed by getResults to retrieve a single page of results is inefficient.

Atomicity violation

Atomicity violations caused by improper usage of ConcurrentHashMap or ConcurrentLinkedQueue can result in crashses or incorrect program results.

Missing handling of specifically-thrown exceptions

Catching generic exceptions might hide issues when specific exceptions are thrown.

Complicated DynamoDB query with expression attribute values

Use withHashKeyValues to set one or more hash key values of a DynamoDB query

Missing check when launching an Android activity with an implicit intent

Your application can crash if the check for an application that can receive the implicit intent is missing from code.

Simplifiable code

Simplifiable code might be harder to read or maintain.

Oversynchronization

Oversynchronization with ConcurrentHashMap or ConcurrentLinkedQueue can reduce program performance.

State machine execution ARN is not logged

Log the ARN identifying the state machine execution for better debuggability.

Unterminated switch case blocks

Terminate case statements in a switch block properly.