public class org.apache.http.impl.execchain.RetryExec implements org.apache.http.impl.execchain.ClientExecChain
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.http.impl.execchain.RetryExec
super_class: java.lang.Object
{
private final org.apache.commons.logging.Log log;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.http.impl.execchain.ClientExecChain requestExecutor;
descriptor: Lorg/apache/http/impl/execchain/ClientExecChain;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.http.client.HttpRequestRetryHandler retryHandler;
descriptor: Lorg/apache/http/client/HttpRequestRetryHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.apache.http.impl.execchain.ClientExecChain, org.apache.http.client.HttpRequestRetryHandler);
descriptor: (Lorg/apache/http/impl/execchain/ClientExecChain;Lorg/apache/http/client/HttpRequestRetryHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
2: aload 1
ldc "HTTP request executor"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
3: aload 2
ldc "HTTP request retry handler"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
4: aload 0
aload 1
putfield org.apache.http.impl.execchain.RetryExec.requestExecutor:Lorg/apache/http/impl/execchain/ClientExecChain;
5: aload 0
aload 2
putfield org.apache.http.impl.execchain.RetryExec.retryHandler:Lorg/apache/http/client/HttpRequestRetryHandler;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/http/impl/execchain/RetryExec;
0 7 1 requestExecutor Lorg/apache/http/impl/execchain/ClientExecChain;
0 7 2 retryHandler Lorg/apache/http/client/HttpRequestRetryHandler;
MethodParameters:
Name Flags
requestExecutor final
retryHandler final
public org.apache.http.client.methods.CloseableHttpResponse execute(org.apache.http.conn.routing.HttpRoute, org.apache.http.client.methods.HttpRequestWrapper, org.apache.http.client.protocol.HttpClientContext, org.apache.http.client.methods.HttpExecutionAware);
descriptor: (Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/client/methods/HttpRequestWrapper;Lorg/apache/http/client/protocol/HttpClientContext;Lorg/apache/http/client/methods/HttpExecutionAware;)Lorg/apache/http/client/methods/CloseableHttpResponse;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
ldc "HTTP route"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 2
ldc "HTTP request"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
2: aload 3
ldc "HTTP context"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
3: aload 2
invokevirtual org.apache.http.client.methods.HttpRequestWrapper.getAllHeaders:()[Lorg/apache/http/Header;
astore 5
start local 5 4: iconst_1
istore 6
start local 6 5: StackMap locals: org.apache.http.Header[] int
StackMap stack:
aload 0
getfield org.apache.http.impl.execchain.RetryExec.requestExecutor:Lorg/apache/http/impl/execchain/ClientExecChain;
aload 1
aload 2
aload 3
aload 4
invokeinterface org.apache.http.impl.execchain.ClientExecChain.execute:(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/client/methods/HttpRequestWrapper;Lorg/apache/http/client/protocol/HttpClientContext;Lorg/apache/http/client/methods/HttpExecutionAware;)Lorg/apache/http/client/methods/CloseableHttpResponse;
6: areturn
7: StackMap locals:
StackMap stack: java.io.IOException
astore 7
start local 7 8: aload 4
ifnull 11
aload 4
invokeinterface org.apache.http.client.methods.HttpExecutionAware.isAborted:()Z
ifeq 11
9: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
ldc "Request has been aborted"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
10: aload 7
athrow
11: StackMap locals: java.io.IOException
StackMap stack:
aload 0
getfield org.apache.http.impl.execchain.RetryExec.retryHandler:Lorg/apache/http/client/HttpRequestRetryHandler;
aload 7
iload 6
aload 3
invokeinterface org.apache.http.client.HttpRequestRetryHandler.retryRequest:(Ljava/io/IOException;ILorg/apache/http/protocol/HttpContext;)Z
ifeq 30
12: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 19
13: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "I/O exception ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: ldc ") caught when processing request to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
16: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
17: aload 7
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
19: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 21
20: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
aload 7
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
aload 7
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
21: StackMap locals:
StackMap stack:
aload 2
invokestatic org.apache.http.impl.execchain.RequestEntityProxy.isRepeatable:(Lorg/apache/http/HttpRequest;)Z
ifne 26
22: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
ldc "Cannot retry non-repeatable request"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
23: new org.apache.http.client.NonRepeatableRequestException
dup
ldc "Cannot retry request with a non-repeatable request entity"
24: aload 7
25: invokespecial org.apache.http.client.NonRepeatableRequestException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
26: StackMap locals:
StackMap stack:
aload 2
aload 5
invokevirtual org.apache.http.client.methods.HttpRequestWrapper.setHeaders:([Lorg/apache/http/Header;)V
27: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isInfoEnabled:()Z
ifeq 37
28: aload 0
getfield org.apache.http.impl.execchain.RetryExec.log:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Retrying request to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface org.apache.commons.logging.Log.info:(Ljava/lang/Object;)V
29: goto 37
30: StackMap locals:
StackMap stack:
aload 7
instanceof org.apache.http.NoHttpResponseException
ifeq 36
31: new org.apache.http.NoHttpResponseException
dup
32: new java.lang.StringBuilder
dup
aload 1
invokevirtual org.apache.http.conn.routing.HttpRoute.getTargetHost:()Lorg/apache/http/HttpHost;
invokevirtual org.apache.http.HttpHost.toHostString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " failed to respond"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokespecial org.apache.http.NoHttpResponseException.<init>:(Ljava/lang/String;)V
astore 8
start local 8 34: aload 8
aload 7
invokevirtual java.io.IOException.getStackTrace:()[Ljava/lang/StackTraceElement;
invokevirtual org.apache.http.NoHttpResponseException.setStackTrace:([Ljava/lang/StackTraceElement;)V
35: aload 8
athrow
end local 8 36: StackMap locals:
StackMap stack:
aload 7
athrow
end local 7 37: StackMap locals:
StackMap stack:
iinc 6 1
goto 5
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lorg/apache/http/impl/execchain/RetryExec;
0 38 1 route Lorg/apache/http/conn/routing/HttpRoute;
0 38 2 request Lorg/apache/http/client/methods/HttpRequestWrapper;
0 38 3 context Lorg/apache/http/client/protocol/HttpClientContext;
0 38 4 execAware Lorg/apache/http/client/methods/HttpExecutionAware;
4 38 5 origheaders [Lorg/apache/http/Header;
5 38 6 execCount I
8 37 7 ex Ljava/io/IOException;
34 36 8 updatedex Lorg/apache/http/NoHttpResponseException;
Exception table:
from to target type
5 6 7 Class java.io.IOException
Exceptions:
throws java.io.IOException, org.apache.http.HttpException
MethodParameters:
Name Flags
route final
request final
context final
execAware final
}
SourceFile: "RetryExec.java"
RuntimeInvisibleAnnotations:
org.apache.http.annotation.Contract(threading = org.apache.http.annotation.ThreadingBehavior.IMMUTABLE_CONDITIONAL:Lorg/apache/http/annotation/ThreadingBehavior;)