Class PredefinedRetryPolicies.SDKDefaultRetryCondition

  • All Implemented Interfaces:
    RetryPolicy.RetryCondition
    Enclosing class:
    PredefinedRetryPolicies

    public static class PredefinedRetryPolicies.SDKDefaultRetryCondition
    extends Object
    implements RetryPolicy.RetryCondition
    The default implementation of RetryCondition used by the SDK. User could extend this class to provide additional custom conditions. The default implementation checks for various conditions in the following order:
    • Retry on client exceptions caused by IOException;
    • Retry on service exceptions that are either 500 internal server errors, 503 service unavailable errors, service throttling errors or clock skew errors.
    • Constructor Detail

      • SDKDefaultRetryCondition

        public SDKDefaultRetryCondition()
    • Method Detail

      • shouldRetry

        public boolean shouldRetry​(AmazonWebServiceRequest originalRequest,
                                   AmazonClientException exception,
                                   int retriesAttempted)
        Description copied from interface: RetryPolicy.RetryCondition
        Returns whether a failed request should be retried according to the given request context. In the following circumstances, the request will fail directly without consulting this method:
        • if it has already reached the max retry limit,
        • if the request contains non-repeatable content,
        • if any RuntimeException or Error is thrown when executing the request.
        Specified by:
        shouldRetry in interface RetryPolicy.RetryCondition
        Parameters:
        originalRequest - The original request object being executed. For performance reason, this object is not a defensive copy, and caller should not attempt to modify its data.
        exception - The exception from the failed request, represented as an AmazonClientException object. There are two types of exception that will be passed to this method:
        • AmazonServiceException (sub-class of AmazonClientException) indicating a service error
        • AmazonClientException caused by an IOException when executing the HTTP request.
        Any other exceptions are regarded as unexpected failures and are thrown immediately without any retry. For performance reason, this object is not a defensive copy, and caller should not attempt to modify its data.
        retriesAttempted - The number of times the current request has been attempted.
        Returns:
        True if the failed request should be retried.