PredefinedRetryPolicies$SDKDefaultRetryCondition.smali

.class public Lcom/amazonaws/retry/PredefinedRetryPolicies$SDKDefaultRetryCondition;
.super Ljava/lang/Object;
.source "PredefinedRetryPolicies.java"

# interfaces
.implements Lcom/amazonaws/retry/RetryPolicy$RetryCondition;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/amazonaws/retry/PredefinedRetryPolicies;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x9
    name = "SDKDefaultRetryCondition"
.end annotation


# direct methods
.method public constructor <init>()V
    .registers 1

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public shouldRetry(Lcom/amazonaws/AmazonWebServiceRequest;Lcom/amazonaws/AmazonClientException;I)Z
    .registers 5

    .line 1
    invoke-virtual {p2}, Ljava/lang/RuntimeException;->getCause()Ljava/lang/Throwable;

    move-result-object p1

    instance-of p1, p1, Ljava/io/IOException;

    const/4 p3, 0x1

    if-eqz p1, :cond_12

    .line 2
    invoke-virtual {p2}, Ljava/lang/RuntimeException;->getCause()Ljava/lang/Throwable;

    move-result-object p1

    instance-of p1, p1, Ljava/io/InterruptedIOException;

    if-nez p1, :cond_12

    return p3

    .line 3
    :cond_12
    instance-of p1, p2, Lcom/amazonaws/AmazonServiceException;

    if-eqz p1, :cond_3b

    .line 4
    check-cast p2, Lcom/amazonaws/AmazonServiceException;

    .line 5
    invoke-virtual {p2}, Lcom/amazonaws/AmazonServiceException;->getStatusCode()I

    move-result p1

    const/16 v0, 0x1f4

    if-eq p1, v0, :cond_3a

    const/16 v0, 0x1f7

    if-eq p1, v0, :cond_3a

    const/16 v0, 0x1f6

    if-eq p1, v0, :cond_3a

    const/16 v0, 0x1f8

    if-ne p1, v0, :cond_2d

    goto :goto_3a

    .line 6
    :cond_2d
    invoke-static {p2}, Lcom/amazonaws/retry/RetryUtils;->isThrottlingException(Lcom/amazonaws/AmazonServiceException;)Z

    move-result p1

    if-eqz p1, :cond_34

    return p3

    .line 7
    :cond_34
    invoke-static {p2}, Lcom/amazonaws/retry/RetryUtils;->isClockSkewError(Lcom/amazonaws/AmazonServiceException;)Z

    move-result p1

    if-eqz p1, :cond_3b

    :cond_3a
    :goto_3a
    return p3

    :cond_3b
    const/4 p1, 0x0

    return p1
.end method