class org.springframework.http.client.Netty4ClientHttpRequest extends org.springframework.http.client.AbstractAsyncClientHttpRequest implements org.springframework.http.client.ClientHttpRequest
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.http.client.Netty4ClientHttpRequest
super_class: org.springframework.http.client.AbstractAsyncClientHttpRequest
{
private final io.netty.bootstrap.Bootstrap bootstrap;
descriptor: Lio/netty/bootstrap/Bootstrap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.net.URI uri;
descriptor: Ljava/net/URI;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.springframework.http.HttpMethod method;
descriptor: Lorg/springframework/http/HttpMethod;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.netty.buffer.ByteBufOutputStream body;
descriptor: Lio/netty/buffer/ByteBufOutputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(io.netty.bootstrap.Bootstrap, java.net.URI, org.springframework.http.HttpMethod);
descriptor: (Lio/netty/bootstrap/Bootstrap;Ljava/net/URI;Lorg/springframework/http/HttpMethod;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial org.springframework.http.client.AbstractAsyncClientHttpRequest.<init>:()V
1: aload 0
aload 1
putfield org.springframework.http.client.Netty4ClientHttpRequest.bootstrap:Lio/netty/bootstrap/Bootstrap;
2: aload 0
aload 2
putfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
3: aload 0
aload 3
putfield org.springframework.http.client.Netty4ClientHttpRequest.method:Lorg/springframework/http/HttpMethod;
4: aload 0
new io.netty.buffer.ByteBufOutputStream
dup
sipush 1024
invokestatic io.netty.buffer.Unpooled.buffer:(I)Lio/netty/buffer/ByteBuf;
invokespecial io.netty.buffer.ByteBufOutputStream.<init>:(Lio/netty/buffer/ByteBuf;)V
putfield org.springframework.http.client.Netty4ClientHttpRequest.body:Lio/netty/buffer/ByteBufOutputStream;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
0 6 1 bootstrap Lio/netty/bootstrap/Bootstrap;
0 6 2 uri Ljava/net/URI;
0 6 3 method Lorg/springframework/http/HttpMethod;
MethodParameters:
Name Flags
bootstrap
uri
method
public org.springframework.http.HttpMethod getMethod();
descriptor: ()Lorg/springframework/http/HttpMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.method:Lorg/springframework/http/HttpMethod;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
public java.lang.String getMethodValue();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.method:Lorg/springframework/http/HttpMethod;
invokevirtual org.springframework.http.HttpMethod.name:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
public java.net.URI getURI();
descriptor: ()Ljava/net/URI;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
public org.springframework.http.client.ClientHttpResponse execute();
descriptor: ()Lorg/springframework/http/client/ClientHttpResponse;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.springframework.http.client.Netty4ClientHttpRequest.executeAsync:()Lorg/springframework/util/concurrent/ListenableFuture;
invokeinterface org.springframework.util.concurrent.ListenableFuture.get:()Ljava/lang/Object;
checkcast org.springframework.http.client.ClientHttpResponse
1: areturn
2: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 1
start local 1 3: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
4: new java.io.IOException
dup
ldc "Interrupted during request execution"
aload 1
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 5: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
astore 1
start local 1 6: aload 1
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
instanceof java.io.IOException
ifeq 8
7: aload 1
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
checkcast java.io.IOException
athrow
8: StackMap locals: java.util.concurrent.ExecutionException
StackMap stack:
new java.io.IOException
dup
aload 1
invokevirtual java.util.concurrent.ExecutionException.getMessage:()Ljava/lang/String;
aload 1
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
3 5 1 ex Ljava/lang/InterruptedException;
6 9 1 ex Ljava/util/concurrent/ExecutionException;
Exception table:
from to target type
0 1 2 Class java.lang.InterruptedException
0 1 5 Class java.util.concurrent.ExecutionException
Exceptions:
throws java.io.IOException
protected java.io.OutputStream getBodyInternal(org.springframework.http.HttpHeaders);
descriptor: (Lorg/springframework/http/HttpHeaders;)Ljava/io/OutputStream;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.body:Lio/netty/buffer/ByteBufOutputStream;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
0 1 1 headers Lorg/springframework/http/HttpHeaders;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
headers
protected org.springframework.util.concurrent.ListenableFuture<org.springframework.http.client.ClientHttpResponse> executeInternal(org.springframework.http.HttpHeaders);
descriptor: (Lorg/springframework/http/HttpHeaders;)Lorg/springframework/util/concurrent/ListenableFuture;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new org.springframework.util.concurrent.SettableListenableFuture
dup
invokespecial org.springframework.util.concurrent.SettableListenableFuture.<init>:()V
astore 2
start local 2 1: aload 0
aload 2
aload 1
invokedynamic operationComplete(Lorg/springframework/http/client/Netty4ClientHttpRequest;Lorg/springframework/util/concurrent/SettableListenableFuture;Lorg/springframework/http/HttpHeaders;)Lio/netty/channel/ChannelFutureListener;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/netty/util/concurrent/Future;)V
org/springframework/http/client/Netty4ClientHttpRequest.lambda$0(Lorg/springframework/util/concurrent/SettableListenableFuture;Lorg/springframework/http/HttpHeaders;Lio/netty/channel/ChannelFuture;)V (7)
(Lio/netty/channel/ChannelFuture;)V
astore 3
start local 3 2: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.bootstrap:Lio/netty/bootstrap/Bootstrap;
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokestatic org.springframework.http.client.Netty4ClientHttpRequest.getPort:(Ljava/net/URI;)I
invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/lang/String;I)Lio/netty/channel/ChannelFuture;
aload 3
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
3: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
0 4 1 headers Lorg/springframework/http/HttpHeaders;
1 4 2 responseFuture Lorg/springframework/util/concurrent/SettableListenableFuture<Lorg/springframework/http/client/ClientHttpResponse;>;
2 4 3 connectionListener Lio/netty/channel/ChannelFutureListener;
Exceptions:
throws java.io.IOException
Signature: (Lorg/springframework/http/HttpHeaders;)Lorg/springframework/util/concurrent/ListenableFuture<Lorg/springframework/http/client/ClientHttpResponse;>;
MethodParameters:
Name Flags
headers final
private io.netty.handler.codec.http.FullHttpRequest createFullHttpRequest(org.springframework.http.HttpHeaders);
descriptor: (Lorg/springframework/http/HttpHeaders;)Lio/netty/handler/codec/http/FullHttpRequest;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.method:Lorg/springframework/http/HttpMethod;
invokevirtual org.springframework.http.HttpMethod.name:()Ljava/lang/String;
invokestatic io.netty.handler.codec.http.HttpMethod.valueOf:(Ljava/lang/String;)Lio/netty/handler/codec/http/HttpMethod;
1: astore 2
start local 2 2: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokevirtual java.net.URI.getRawAuthority:()Ljava/lang/String;
astore 3
start local 3 3: aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokevirtual java.net.URI.toString:()Ljava/lang/String;
aload 3
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
aload 3
invokevirtual java.lang.String.length:()I
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 4: new io.netty.handler.codec.http.DefaultFullHttpRequest
dup
5: getstatic io.netty.handler.codec.http.HttpVersion.HTTP_1_1:Lio/netty/handler/codec/http/HttpVersion;
aload 2
aload 4
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.body:Lio/netty/buffer/ByteBufOutputStream;
invokevirtual io.netty.buffer.ByteBufOutputStream.buffer:()Lio/netty/buffer/ByteBuf;
6: invokespecial io.netty.handler.codec.http.DefaultFullHttpRequest.<init>:(Lio/netty/handler/codec/http/HttpVersion;Lio/netty/handler/codec/http/HttpMethod;Ljava/lang/String;Lio/netty/buffer/ByteBuf;)V
astore 5
start local 5 7: aload 5
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
ldc "Host"
new java.lang.StringBuilder
dup
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.uri:Ljava/net/URI;
invokestatic org.springframework.http.client.Netty4ClientHttpRequest.getPort:(Ljava/net/URI;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
8: aload 5
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
ldc "Connection"
ldc "close"
invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
9: aload 1
aload 5
invokedynamic accept(Lio/netty/handler/codec/http/FullHttpRequest;)Ljava/util/function/BiConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
org/springframework/http/client/Netty4ClientHttpRequest.lambda$1(Lio/netty/handler/codec/http/FullHttpRequest;Ljava/lang/String;Ljava/util/List;)V (6)
(Ljava/lang/String;Ljava/util/List;)V
invokevirtual org.springframework.http.HttpHeaders.forEach:(Ljava/util/function/BiConsumer;)V
10: aload 5
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
ldc "Content-Length"
invokevirtual io.netty.handler.codec.http.HttpHeaders.contains:(Ljava/lang/String;)Z
ifne 12
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.body:Lio/netty/buffer/ByteBufOutputStream;
invokevirtual io.netty.buffer.ByteBufOutputStream.buffer:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
ifle 12
11: aload 5
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
ldc "Content-Length"
aload 0
getfield org.springframework.http.client.Netty4ClientHttpRequest.body:Lio/netty/buffer/ByteBufOutputStream;
invokevirtual io.netty.buffer.ByteBufOutputStream.buffer:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual io.netty.handler.codec.http.HttpHeaders.set:(Ljava/lang/String;Ljava/lang/Object;)Lio/netty/handler/codec/http/HttpHeaders;
pop
12: StackMap locals: org.springframework.http.client.Netty4ClientHttpRequest org.springframework.http.HttpHeaders io.netty.handler.codec.http.HttpMethod java.lang.String java.lang.String io.netty.handler.codec.http.FullHttpRequest
StackMap stack:
aload 5
areturn
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 13 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
0 13 1 headers Lorg/springframework/http/HttpHeaders;
2 13 2 nettyMethod Lio/netty/handler/codec/http/HttpMethod;
3 13 3 authority Ljava/lang/String;
4 13 4 path Ljava/lang/String;
7 13 5 nettyRequest Lio/netty/handler/codec/http/FullHttpRequest;
MethodParameters:
Name Flags
headers
private static int getPort(java.net.URI);
descriptor: (Ljava/net/URI;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.net.URI.getPort:()I
istore 1
start local 1 1: iload 1
iconst_m1
if_icmpne 7
2: ldc "http"
aload 0
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 5
3: bipush 80
istore 1
4: goto 7
5: StackMap locals: int
StackMap stack:
ldc "https"
aload 0
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 7
6: sipush 443
istore 1
7: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 uri Ljava/net/URI;
1 8 1 port I
MethodParameters:
Name Flags
uri
private void (org.springframework.util.concurrent.SettableListenableFuture, org.springframework.http.HttpHeaders, io.netty.channel.ChannelFuture);
descriptor: (Lorg/springframework/util/concurrent/SettableListenableFuture;Lorg/springframework/http/HttpHeaders;Lio/netty/channel/ChannelFuture;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=7, locals=6, args_size=4
start local 0 start local 3 0: aload 3
invokeinterface io.netty.channel.ChannelFuture.isSuccess:()Z
ifeq 6
1: aload 3
invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
astore 4
start local 4 2: aload 4
invokeinterface io.netty.channel.Channel.pipeline:()Lio/netty/channel/ChannelPipeline;
iconst_1
anewarray io.netty.channel.ChannelHandler
dup
iconst_0
new org.springframework.http.client.Netty4ClientHttpRequest$RequestExecuteHandler
dup
aload 1
invokespecial org.springframework.http.client.Netty4ClientHttpRequest$RequestExecuteHandler.<init>:(Lorg/springframework/util/concurrent/SettableListenableFuture;)V
aastore
invokeinterface io.netty.channel.ChannelPipeline.addLast:([Lio/netty/channel/ChannelHandler;)Lio/netty/channel/ChannelPipeline;
pop
3: aload 0
aload 2
invokevirtual org.springframework.http.client.Netty4ClientHttpRequest.createFullHttpRequest:(Lorg/springframework/http/HttpHeaders;)Lio/netty/handler/codec/http/FullHttpRequest;
astore 5
start local 5 4: aload 4
aload 5
invokeinterface io.netty.channel.Channel.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 5 end local 4 5: goto 7
6: StackMap locals:
StackMap stack:
aload 1
aload 3
invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
invokevirtual org.springframework.util.concurrent.SettableListenableFuture.setException:(Ljava/lang/Throwable;)Z
pop
7: StackMap locals:
StackMap stack:
return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/http/client/Netty4ClientHttpRequest;
0 8 3 future Lio/netty/channel/ChannelFuture;
2 5 4 channel Lio/netty/channel/Channel;
4 5 5 nettyRequest Lio/netty/handler/codec/http/FullHttpRequest;
Exceptions:
throws java.lang.Exception
private static void lambda$1(io.netty.handler.codec.http.FullHttpRequest, java.lang.String, java.util.List);
descriptor: (Lio/netty/handler/codec/http/FullHttpRequest;Ljava/lang/String;Ljava/util/List;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 1 start local 2 0: aload 0
invokeinterface io.netty.handler.codec.http.FullHttpRequest.headers:()Lio/netty/handler/codec/http/HttpHeaders;
aload 1
aload 2
invokevirtual io.netty.handler.codec.http.HttpHeaders.add:(Ljava/lang/String;Ljava/lang/Iterable;)Lio/netty/handler/codec/http/HttpHeaders;
return
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 headerName Ljava/lang/String;
0 1 2 headerValues Ljava/util/List<Ljava/lang/String;>;
}
SourceFile: "Netty4ClientHttpRequest.java"
NestMembers:
org.springframework.http.client.Netty4ClientHttpRequest$RequestExecuteHandler
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private RequestExecuteHandler = org.springframework.http.client.Netty4ClientHttpRequest$RequestExecuteHandler of org.springframework.http.client.Netty4ClientHttpRequest
RuntimeVisibleAnnotations:
java.lang.Deprecated()