public class org.apache.http.impl.execchain.RedirectExec 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.RedirectExec
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.RedirectStrategy redirectStrategy;
descriptor: Lorg/apache/http/client/RedirectStrategy;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.http.conn.routing.HttpRoutePlanner routePlanner;
descriptor: Lorg/apache/http/conn/routing/HttpRoutePlanner;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(org.apache.http.impl.execchain.ClientExecChain, org.apache.http.conn.routing.HttpRoutePlanner, org.apache.http.client.RedirectStrategy);
descriptor: (Lorg/apache/http/impl/execchain/ClientExecChain;Lorg/apache/http/conn/routing/HttpRoutePlanner;Lorg/apache/http/client/RedirectStrategy;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 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.RedirectExec.log:Lorg/apache/commons/logging/Log;
2: aload 1
ldc "HTTP client request executor"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
3: aload 2
ldc "HTTP route planner"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
4: aload 3
ldc "HTTP redirect strategy"
invokestatic org.apache.http.util.Args.notNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
5: aload 0
aload 1
putfield org.apache.http.impl.execchain.RedirectExec.requestExecutor:Lorg/apache/http/impl/execchain/ClientExecChain;
6: aload 0
aload 2
putfield org.apache.http.impl.execchain.RedirectExec.routePlanner:Lorg/apache/http/conn/routing/HttpRoutePlanner;
7: aload 0
aload 3
putfield org.apache.http.impl.execchain.RedirectExec.redirectStrategy:Lorg/apache/http/client/RedirectStrategy;
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/http/impl/execchain/RedirectExec;
0 9 1 requestExecutor Lorg/apache/http/impl/execchain/ClientExecChain;
0 9 2 routePlanner Lorg/apache/http/conn/routing/HttpRoutePlanner;
0 9 3 redirectStrategy Lorg/apache/http/client/RedirectStrategy;
MethodParameters:
Name Flags
requestExecutor final
routePlanner final
redirectStrategy 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=17, 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 3
invokevirtual org.apache.http.client.protocol.HttpClientContext.getRedirectLocations:()Ljava/util/List;
astore 5
start local 5 4: aload 5
ifnull 6
5: aload 5
invokeinterface java.util.List.clear:()V
6: StackMap locals: java.util.List
StackMap stack:
aload 3
invokevirtual org.apache.http.client.protocol.HttpClientContext.getRequestConfig:()Lorg/apache/http/client/config/RequestConfig;
astore 6
start local 6 7: aload 6
invokevirtual org.apache.http.client.config.RequestConfig.getMaxRedirects:()I
ifle 8
aload 6
invokevirtual org.apache.http.client.config.RequestConfig.getMaxRedirects:()I
goto 9
StackMap locals: org.apache.http.client.config.RequestConfig
StackMap stack:
8: bipush 50
StackMap locals:
StackMap stack: int
9: istore 7
start local 7 10: aload 1
astore 8
start local 8 11: aload 2
astore 9
start local 9 12: iconst_0
istore 10
start local 10 13: StackMap locals: org.apache.http.impl.execchain.RedirectExec org.apache.http.conn.routing.HttpRoute org.apache.http.client.methods.HttpRequestWrapper org.apache.http.client.protocol.HttpClientContext org.apache.http.client.methods.HttpExecutionAware java.util.List org.apache.http.client.config.RequestConfig int org.apache.http.conn.routing.HttpRoute org.apache.http.client.methods.HttpRequestWrapper int
StackMap stack:
aload 0
getfield org.apache.http.impl.execchain.RedirectExec.requestExecutor:Lorg/apache/http/impl/execchain/ClientExecChain;
14: aload 8
aload 9
aload 3
aload 4
15: 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;
astore 11
start local 11 16: aload 6
invokevirtual org.apache.http.client.config.RequestConfig.isRedirectsEnabled:()Z
ifeq 56
17: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.redirectStrategy:Lorg/apache/http/client/RedirectStrategy;
aload 9
invokevirtual org.apache.http.client.methods.HttpRequestWrapper.getOriginal:()Lorg/apache/http/HttpRequest;
aload 11
aload 3
invokeinterface org.apache.http.client.RedirectStrategy.isRedirected:(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z
ifeq 56
18: aload 9
invokestatic org.apache.http.impl.execchain.RequestEntityProxy.isRepeatable:(Lorg/apache/http/HttpRequest;)Z
ifne 23
19: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.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.RedirectExec.log:Lorg/apache/commons/logging/Log;
ldc "Cannot redirect non-repeatable request"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
21: StackMap locals: org.apache.http.client.methods.CloseableHttpResponse
StackMap stack:
aload 11
22: areturn
23: StackMap locals:
StackMap stack:
iload 10
iload 7
if_icmplt 25
24: new org.apache.http.client.RedirectException
dup
new java.lang.StringBuilder
dup
ldc "Maximum redirects ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") exceeded"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.apache.http.client.RedirectException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
iinc 10 1
26: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.redirectStrategy:Lorg/apache/http/client/RedirectStrategy;
27: aload 9
invokevirtual org.apache.http.client.methods.HttpRequestWrapper.getOriginal:()Lorg/apache/http/HttpRequest;
aload 11
aload 3
28: invokeinterface org.apache.http.client.RedirectStrategy.getRedirect:(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/methods/HttpUriRequest;
astore 12
start local 12 29: aload 12
invokeinterface org.apache.http.HttpRequest.headerIterator:()Lorg/apache/http/HeaderIterator;
invokeinterface org.apache.http.HeaderIterator.hasNext:()Z
ifne 32
30: aload 2
invokevirtual org.apache.http.client.methods.HttpRequestWrapper.getOriginal:()Lorg/apache/http/HttpRequest;
astore 13
start local 13 31: aload 12
aload 13
invokeinterface org.apache.http.HttpRequest.getAllHeaders:()[Lorg/apache/http/Header;
invokeinterface org.apache.http.HttpRequest.setHeaders:([Lorg/apache/http/Header;)V
end local 13 32: StackMap locals: org.apache.http.HttpRequest
StackMap stack:
aload 12
invokestatic org.apache.http.client.methods.HttpRequestWrapper.wrap:(Lorg/apache/http/HttpRequest;)Lorg/apache/http/client/methods/HttpRequestWrapper;
astore 9
33: aload 9
instanceof org.apache.http.HttpEntityEnclosingRequest
ifeq 35
34: aload 9
checkcast org.apache.http.HttpEntityEnclosingRequest
invokestatic org.apache.http.impl.execchain.RequestEntityProxy.enhance:(Lorg/apache/http/HttpEntityEnclosingRequest;)V
35: StackMap locals:
StackMap stack:
aload 9
invokevirtual org.apache.http.client.methods.HttpRequestWrapper.getURI:()Ljava/net/URI;
astore 13
start local 13 36: aload 13
invokestatic org.apache.http.client.utils.URIUtils.extractHost:(Ljava/net/URI;)Lorg/apache/http/HttpHost;
astore 14
start local 14 37: aload 14
ifnonnull 41
38: new org.apache.http.ProtocolException
dup
new java.lang.StringBuilder
dup
ldc "Redirect URI does not specify a valid host name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
39: aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
40: invokespecial org.apache.http.ProtocolException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals: java.net.URI org.apache.http.HttpHost
StackMap stack:
aload 8
invokevirtual org.apache.http.conn.routing.HttpRoute.getTargetHost:()Lorg/apache/http/HttpHost;
aload 14
invokevirtual org.apache.http.HttpHost.equals:(Ljava/lang/Object;)Z
ifne 50
42: aload 3
invokevirtual org.apache.http.client.protocol.HttpClientContext.getTargetAuthState:()Lorg/apache/http/auth/AuthState;
astore 15
start local 15 43: aload 15
ifnull 46
44: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.log:Lorg/apache/commons/logging/Log;
ldc "Resetting target auth state"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
45: aload 15
invokevirtual org.apache.http.auth.AuthState.reset:()V
46: StackMap locals: org.apache.http.auth.AuthState
StackMap stack:
aload 3
invokevirtual org.apache.http.client.protocol.HttpClientContext.getProxyAuthState:()Lorg/apache/http/auth/AuthState;
astore 16
start local 16 47: aload 16
ifnull 50
aload 16
invokevirtual org.apache.http.auth.AuthState.isConnectionBased:()Z
ifeq 50
48: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.log:Lorg/apache/commons/logging/Log;
ldc "Resetting proxy auth state"
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;)V
49: aload 16
invokevirtual org.apache.http.auth.AuthState.reset:()V
end local 16 end local 15 50: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.http.impl.execchain.RedirectExec.routePlanner:Lorg/apache/http/conn/routing/HttpRoutePlanner;
aload 14
aload 9
aload 3
invokeinterface org.apache.http.conn.routing.HttpRoutePlanner.determineRoute:(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;
astore 8
51: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.log:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 53
52: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.log:Lorg/apache/commons/logging/Log;
new java.lang.StringBuilder
dup
ldc "Redirecting to '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 13
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "' via "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
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.debug:(Ljava/lang/Object;)V
53: StackMap locals:
StackMap stack:
aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.getEntity:()Lorg/apache/http/HttpEntity;
invokestatic org.apache.http.util.EntityUtils.consume:(Lorg/apache/http/HttpEntity;)V
54: aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.close:()V
end local 14 end local 13 end local 12 55: goto 13
56: StackMap locals:
StackMap stack:
aload 11
57: areturn
58: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 12
start local 12 59: aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.close:()V
60: aload 12
athrow
end local 12 61: StackMap locals:
StackMap stack: java.io.IOException
astore 12
start local 12 62: aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.close:()V
63: aload 12
athrow
end local 12 64: StackMap locals:
StackMap stack: org.apache.http.HttpException
astore 12
start local 12 65: aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.getEntity:()Lorg/apache/http/HttpEntity;
invokestatic org.apache.http.util.EntityUtils.consume:(Lorg/apache/http/HttpEntity;)V
66: goto 73
StackMap locals: org.apache.http.impl.execchain.RedirectExec org.apache.http.conn.routing.HttpRoute org.apache.http.client.methods.HttpRequestWrapper org.apache.http.client.protocol.HttpClientContext org.apache.http.client.methods.HttpExecutionAware java.util.List org.apache.http.client.config.RequestConfig int org.apache.http.conn.routing.HttpRoute org.apache.http.client.methods.HttpRequestWrapper int org.apache.http.client.methods.CloseableHttpResponse org.apache.http.HttpException
StackMap stack: java.io.IOException
67: astore 13
start local 13 68: aload 0
getfield org.apache.http.impl.execchain.RedirectExec.log:Lorg/apache/commons/logging/Log;
ldc "I/O error while releasing connection"
aload 13
invokeinterface org.apache.commons.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 13 69: aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.close:()V
goto 74
70: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
71: aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.close:()V
72: aload 14
athrow
73: StackMap locals:
StackMap stack:
aload 11
invokeinterface org.apache.http.client.methods.CloseableHttpResponse.close:()V
74: StackMap locals:
StackMap stack:
aload 12
athrow
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 75 0 this Lorg/apache/http/impl/execchain/RedirectExec;
0 75 1 route Lorg/apache/http/conn/routing/HttpRoute;
0 75 2 request Lorg/apache/http/client/methods/HttpRequestWrapper;
0 75 3 context Lorg/apache/http/client/protocol/HttpClientContext;
0 75 4 execAware Lorg/apache/http/client/methods/HttpExecutionAware;
4 75 5 redirectLocations Ljava/util/List<Ljava/net/URI;>;
7 75 6 config Lorg/apache/http/client/config/RequestConfig;
10 75 7 maxRedirects I
11 75 8 currentRoute Lorg/apache/http/conn/routing/HttpRoute;
12 75 9 currentRequest Lorg/apache/http/client/methods/HttpRequestWrapper;
13 75 10 redirectCount I
16 75 11 response Lorg/apache/http/client/methods/CloseableHttpResponse;
29 55 12 redirect Lorg/apache/http/HttpRequest;
31 32 13 original Lorg/apache/http/HttpRequest;
36 55 13 uri Ljava/net/URI;
37 55 14 newTarget Lorg/apache/http/HttpHost;
43 50 15 targetAuthState Lorg/apache/http/auth/AuthState;
47 50 16 proxyAuthState Lorg/apache/http/auth/AuthState;
59 61 12 ex Ljava/lang/RuntimeException;
62 64 12 ex Ljava/io/IOException;
65 75 12 ex Lorg/apache/http/HttpException;
68 69 13 ioex Ljava/io/IOException;
Exception table:
from to target type
16 22 58 Class java.lang.RuntimeException
23 57 58 Class java.lang.RuntimeException
16 22 61 Class java.io.IOException
23 57 61 Class java.io.IOException
16 22 64 Class org.apache.http.HttpException
23 57 64 Class org.apache.http.HttpException
65 66 67 Class java.io.IOException
65 69 70 any
Exceptions:
throws java.io.IOException, org.apache.http.HttpException
MethodParameters:
Name Flags
route final
request final
context final
execAware final
}
SourceFile: "RedirectExec.java"
RuntimeInvisibleAnnotations:
org.apache.http.annotation.Contract(threading = org.apache.http.annotation.ThreadingBehavior.IMMUTABLE_CONDITIONAL:Lorg/apache/http/annotation/ThreadingBehavior;)