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