class jdk.incubator.http.Http1Exchange<T> extends jdk.incubator.http.ExchangeImpl<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.incubator.http.Http1Exchange
super_class: jdk.incubator.http.ExchangeImpl
{
final jdk.incubator.http.HttpRequestImpl request;
descriptor: Ljdk/incubator/http/HttpRequestImpl;
flags: (0x0010) ACC_FINAL
private final java.util.List<java.util.concurrent.CompletableFuture<?>> operations;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/util/concurrent/CompletableFuture<*>;>;
final jdk.incubator.http.Http1Request requestAction;
descriptor: Ljdk/incubator/http/Http1Request;
flags: (0x0010) ACC_FINAL
private volatile jdk.incubator.http.Http1Response<T> response;
descriptor: Ljdk/incubator/http/Http1Response;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljdk/incubator/http/Http1Response<TT;>;
private java.io.IOException failed;
descriptor: Ljava/io/IOException;
flags: (0x0002) ACC_PRIVATE
final jdk.incubator.http.HttpConnection connection;
descriptor: Ljdk/incubator/http/HttpConnection;
flags: (0x0010) ACC_FINAL
final jdk.incubator.http.HttpClientImpl client;
descriptor: Ljdk/incubator/http/HttpClientImpl;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0010) ACC_FINAL
volatile java.nio.ByteBuffer buffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0040) ACC_VOLATILE
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
jdk.incubator.http.HttpRequestImpl request();
descriptor: ()Ljdk/incubator/http/HttpRequestImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
void <init>(jdk.incubator.http.Exchange<T>, jdk.incubator.http.HttpConnection);
descriptor: (Ljdk/incubator/http/Exchange;Ljdk/incubator/http/HttpConnection;)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial jdk.incubator.http.ExchangeImpl.<init>:(Ljdk/incubator/http/Exchange;)V
1: aload 0
aload 1
invokevirtual jdk.incubator.http.Exchange.request:()Ljdk/incubator/http/HttpRequestImpl;
putfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
2: aload 0
aload 1
invokevirtual jdk.incubator.http.Exchange.client:()Ljdk/incubator/http/HttpClientImpl;
putfield jdk.incubator.http.Http1Exchange.client:Ljdk/incubator/http/HttpClientImpl;
3: aload 0
aload 1
invokevirtual jdk.incubator.http.Exchange.executor:()Ljava/util/concurrent/Executor;
putfield jdk.incubator.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
4: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield jdk.incubator.http.Http1Exchange.operations:Ljava/util/List;
5: aload 0
getstatic jdk.incubator.http.internal.common.Utils.EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.Http1Exchange.buffer:Ljava/nio/ByteBuffer;
6: aload 2
ifnull 9
7: aload 0
aload 2
putfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
8: goto 11
9: StackMap locals: jdk.incubator.http.Http1Exchange jdk.incubator.http.Exchange jdk.incubator.http.HttpConnection
StackMap stack:
aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
aload 0
getfield jdk.incubator.http.Http1Exchange.client:Ljdk/incubator/http/HttpClientImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.getAddress:(Ljdk/incubator/http/HttpClientImpl;)Ljava/net/InetSocketAddress;
astore 3
start local 3 10: aload 0
aload 3
aload 0
getfield jdk.incubator.http.Http1Exchange.client:Ljdk/incubator/http/HttpClientImpl;
aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokestatic jdk.incubator.http.HttpConnection.getConnection:(Ljava/net/InetSocketAddress;Ljdk/incubator/http/HttpClientImpl;Ljdk/incubator/http/HttpRequestImpl;)Ljdk/incubator/http/HttpConnection;
putfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
end local 3 11: StackMap locals:
StackMap stack:
aload 0
new jdk.incubator.http.Http1Request
dup
aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
aload 0
getfield jdk.incubator.http.Http1Exchange.client:Ljdk/incubator/http/HttpClientImpl;
aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokespecial jdk.incubator.http.Http1Request.<init>:(Ljdk/incubator/http/HttpRequestImpl;Ljdk/incubator/http/HttpClientImpl;Ljdk/incubator/http/HttpConnection;)V
putfield jdk.incubator.http.Http1Exchange.requestAction:Ljdk/incubator/http/Http1Request;
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 13 1 exchange Ljdk/incubator/http/Exchange<TT;>;
0 13 2 connection Ljdk/incubator/http/HttpConnection;
10 11 3 addr Ljava/net/InetSocketAddress;
Exceptions:
throws java.io.IOException
Signature: (Ljdk/incubator/http/Exchange<TT;>;Ljdk/incubator/http/HttpConnection;)V
MethodParameters:
Name Flags
exchange
connection
jdk.incubator.http.HttpConnection connection();
descriptor: ()Ljdk/incubator/http/HttpConnection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
T readBody(jdk.incubator.http.HttpResponse$BodyHandler<T>, );
descriptor: (Ljdk/incubator/http/HttpResponse$BodyHandler;Z)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.responseCode:()I
1: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.responseHeaders:()Ljdk/incubator/http/HttpHeaders;
2: invokeinterface jdk.incubator.http.HttpResponse$BodyHandler.apply:(ILjdk/incubator/http/HttpHeaders;)Ljdk/incubator/http/HttpResponse$BodyProcessor;
astore 3
start local 3 3: aload 0
aload 3
invokevirtual jdk.incubator.http.Http1Exchange.setClientForResponse:(Ljdk/incubator/http/HttpResponse$BodyProcessor;)V
4: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
aload 3
5: iload 2
6: aload 0
invokedynamic execute(Ljdk/incubator/http/Http1Exchange;)Ljava/util/concurrent/Executor;
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/Runnable;)V
jdk/incubator/http/Http1Exchange.executeInline(Ljava/lang/Runnable;)V (7)
(Ljava/lang/Runnable;)V
7: invokevirtual jdk.incubator.http.Http1Response.readBody:(Ljdk/incubator/http/HttpResponse$BodyProcessor;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
astore 4
start local 4 8: aload 4
invokevirtual java.util.concurrent.CompletableFuture.join:()Ljava/lang/Object;
9: areturn
10: StackMap locals: jdk.incubator.http.Http1Exchange jdk.incubator.http.HttpResponse$BodyHandler int jdk.incubator.http.HttpResponse$BodyProcessor java.util.concurrent.CompletableFuture
StackMap stack: java.util.concurrent.CompletionException
astore 6
start local 6 11: aload 6
invokestatic jdk.incubator.http.internal.common.Utils.getIOException:(Ljava/lang/Throwable;)Ljava/io/IOException;
athrow
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 12 1 handler Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;
0 12 2 returnConnectionToPool Z
3 12 3 processor Ljdk/incubator/http/HttpResponse$BodyProcessor<TT;>;
8 12 4 bodyCF Ljava/util/concurrent/CompletableFuture<TT;>;
11 12 6 e Ljava/util/concurrent/CompletionException;
Exception table:
from to target type
8 9 10 Class java.util.concurrent.CompletionException
Exceptions:
throws java.io.IOException
Signature: (Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;Z)TT;
MethodParameters:
Name Flags
handler
returnConnectionToPool
private void executeInline(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.lang.Runnable.run:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 2 1 r Ljava/lang/Runnable;
MethodParameters:
Name Flags
r
synchronized java.nio.ByteBuffer getBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.buffer:Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
java.util.concurrent.CompletableFuture<T> readBodyAsync(jdk.incubator.http.HttpResponse$BodyHandler<T>, boolean, java.util.concurrent.Executor);
descriptor: (Ljdk/incubator/http/HttpResponse$BodyHandler;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.responseCode:()I
1: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.responseHeaders:()Ljdk/incubator/http/HttpHeaders;
2: invokeinterface jdk.incubator.http.HttpResponse$BodyHandler.apply:(ILjdk/incubator/http/HttpHeaders;)Ljdk/incubator/http/HttpResponse$BodyProcessor;
astore 4
start local 4 3: aload 0
aload 4
invokevirtual jdk.incubator.http.Http1Exchange.setClientForResponse:(Ljdk/incubator/http/HttpResponse$BodyProcessor;)V
4: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
aload 4
5: iload 2
6: aload 3
7: invokevirtual jdk.incubator.http.Http1Response.readBody:(Ljdk/incubator/http/HttpResponse$BodyProcessor;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
astore 5
start local 5 8: 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 9 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 9 1 handler Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;
0 9 2 returnConnectionToPool Z
0 9 3 executor Ljava/util/concurrent/Executor;
3 9 4 processor Ljdk/incubator/http/HttpResponse$BodyProcessor<TT;>;
8 9 5 bodyCF Ljava/util/concurrent/CompletableFuture<TT;>;
Signature: (Ljdk/incubator/http/HttpResponse$BodyHandler<TT;>;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<TT;>;
MethodParameters:
Name Flags
handler
returnConnectionToPool
executor
void ();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.connected:()Z
ifne 2
1: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.connect:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.Http1Exchange.requestAction:Ljdk/incubator/http/Http1Request;
invokevirtual jdk.incubator.http.Http1Request.sendHeadersOnly:()V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 1
start local 1 5: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.close:()V
6: aload 1
athrow
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
5 7 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 3 4 Class java.lang.Throwable
Exceptions:
throws java.io.IOException, java.lang.InterruptedException
void sendBody();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.requestAction:Ljdk/incubator/http/Http1Request;
invokevirtual jdk.incubator.http.Http1Request.continueRequest:()V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
start local 1 3: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.close:()V
4: aload 1
athrow
end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
3 5 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
jdk.incubator.http.Response getResponse();
descriptor: ()Ljdk/incubator/http/Response;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
new jdk.incubator.http.Http1Response
dup
aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
aload 0
invokespecial jdk.incubator.http.Http1Response.<init>:(Ljdk/incubator/http/HttpConnection;Ljdk/incubator/http/Http1Exchange;)V
putfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
1: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.readHeaders:()V
2: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.response:()Ljdk/incubator/http/Response;
astore 1
start local 1 3: aload 0
aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.getBuffer:()Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.Http1Exchange.buffer:Ljava/nio/ByteBuffer;
4: aload 1
5: areturn
end local 1 6: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 7: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.close:()V
8: aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
3 6 1 r Ljdk/incubator/http/Response;
7 9 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 5 6 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
private void closeConnection();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
void cancel();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
new java.io.IOException
dup
ldc "Request cancelled"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
invokevirtual jdk.incubator.http.Http1Exchange.cancel:(Ljava/io/IOException;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
synchronized void cancel(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.Http1Exchange.requestAction:Ljdk/incubator/http/Http1Request;
ifnull 3
aload 0
getfield jdk.incubator.http.Http1Exchange.requestAction:Ljdk/incubator/http/Http1Request;
invokevirtual jdk.incubator.http.Http1Request.finished:()Z
ifeq 3
1: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
ifnull 3
aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.finished:()Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.close:()V
4: iconst_0
istore 2
start local 2 5: aload 0
getfield jdk.incubator.http.Http1Exchange.operations:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 17
6: aload 0
aload 1
putfield jdk.incubator.http.Http1Exchange.failed:Ljava/io/IOException;
7: ldc "Http1Exchange: request [{0}/timeout={1}ms] no pending operation.\n\tCan''t cancel yet with {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
8: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.uri:()Ljava/net/URI;
aastore
dup
iconst_1
9: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.duration:()Ljava/time/Duration;
ifnonnull 10
ldc -1
goto 13
10: StackMap locals: jdk.incubator.http.Http1Exchange java.io.IOException int
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.duration:()Ljava/time/Duration;
invokevirtual java.time.Duration.getSeconds:()J
ldc 1000
lmul
11: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.duration:()Ljava/time/Duration;
invokevirtual java.time.Duration.getNano:()I
ldc 1000000
idiv
i2l
12: ladd
13: StackMap locals: jdk.incubator.http.Http1Exchange java.io.IOException int
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int long
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
14: aload 1
aastore
15: invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
16: goto 22
17: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.Http1Exchange.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 21
StackMap locals: jdk.incubator.http.Http1Exchange java.io.IOException int top java.util.Iterator
StackMap stack:
18: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 3
start local 3 19: aload 3
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
20: iinc 2 1
end local 3 21: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
22: StackMap locals: jdk.incubator.http.Http1Exchange java.io.IOException int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Http1Exchange.cancel: count="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 24 1 cause Ljava/io/IOException;
5 24 2 count I
19 21 3 cf Ljava/util/concurrent/CompletableFuture<*>;
MethodParameters:
Name Flags
cause
java.util.concurrent.CompletableFuture<jdk.incubator.http.Response> getResponseAsyncImpl(java.util.concurrent.Executor);
descriptor: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokedynamic get(Ljdk/incubator/http/Http1Exchange;)Ljdk/incubator/http/internal/common/MinimalFuture$ExceptionalSupplier;
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;
jdk/incubator/http/Http1Exchange.lambda$1()Ljdk/incubator/http/Response; (7)
()Ljdk/incubator/http/Response;
1: aload 1
2: invokestatic jdk.incubator.http.internal.common.MinimalFuture.supply:(Ljdk/incubator/http/internal/common/MinimalFuture$ExceptionalSupplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 3 1 executor Ljava/util/concurrent/Executor;
Signature: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/Response;>;
MethodParameters:
Name Flags
executor
java.util.concurrent.CompletableFuture<jdk.incubator.http.Response> getResponseAsync(java.util.concurrent.Executor);
descriptor: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=8, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.whenReceivingResponse:()Ljava/util/concurrent/CompletableFuture;
1: aload 0
aload 1
invokedynamic apply(Ljdk/incubator/http/Http1Exchange;Ljava/util/concurrent/Executor;)Ljava/util/function/Function;
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;
jdk/incubator/http/Http1Exchange.lambda$2(Ljava/util/concurrent/Executor;Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage; (7)
(Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
2: astore 2
start local 2 3: aload 0
dup
astore 4
monitorenter
4: aload 0
getfield jdk.incubator.http.Http1Exchange.operations:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield jdk.incubator.http.Http1Exchange.failed:Ljava/io/IOException;
astore 3
start local 3 6: aload 0
aconst_null
putfield jdk.incubator.http.Http1Exchange.failed:Ljava/io/IOException;
7: aload 4
monitorexit
8: goto 11
end local 3 StackMap locals: jdk.incubator.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture top jdk.incubator.http.Http1Exchange
StackMap stack: java.lang.Throwable
9: aload 4
monitorexit
10: athrow
start local 3 11: StackMap locals: jdk.incubator.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.io.IOException
StackMap stack:
aload 3
ifnull 22
12: ldc "Http1Exchange: request [{0}/timeout={1}ms]\n\tCompleting exceptionally with {2}\n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
13: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.uri:()Ljava/net/URI;
aastore
dup
iconst_1
14: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.duration:()Ljava/time/Duration;
ifnonnull 15
ldc -1
goto 18
15: StackMap locals: jdk.incubator.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.io.IOException
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.duration:()Ljava/time/Duration;
invokevirtual java.time.Duration.getSeconds:()J
ldc 1000
lmul
16: aload 0
getfield jdk.incubator.http.Http1Exchange.request:Ljdk/incubator/http/HttpRequestImpl;
invokevirtual jdk.incubator.http.HttpRequestImpl.duration:()Ljava/time/Duration;
invokevirtual java.time.Duration.getNano:()I
ldc 1000000
idiv
i2l
17: ladd
18: StackMap locals: jdk.incubator.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.io.IOException
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int long
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
19: aload 3
aastore
20: invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
21: aload 2
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
22: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 23 1 executor Ljava/util/concurrent/Executor;
3 23 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/Response;>;
6 9 3 cause Ljava/io/IOException;
11 23 3 cause Ljava/io/IOException;
Exception table:
from to target type
4 8 9 any
9 10 9 any
Signature: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/Response;>;
MethodParameters:
Name Flags
executor
private jdk.incubator.http.Response lambda$1();
descriptor: ()Ljdk/incubator/http/Response;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
new jdk.incubator.http.Http1Response
dup
aload 0
getfield jdk.incubator.http.Http1Exchange.connection:Ljdk/incubator/http/HttpConnection;
aload 0
invokespecial jdk.incubator.http.Http1Response.<init>:(Ljdk/incubator/http/HttpConnection;Ljdk/incubator/http/Http1Exchange;)V
putfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
1: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.readHeaders:()V
2: aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.response:()Ljdk/incubator/http/Response;
astore 1
start local 1 3: aload 0
aload 0
getfield jdk.incubator.http.Http1Exchange.response:Ljdk/incubator/http/Http1Response;
invokevirtual jdk.incubator.http.Http1Response.getBuffer:()Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.Http1Exchange.buffer:Ljava/nio/ByteBuffer;
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
3 5 1 r Ljdk/incubator/http/Response;
Exceptions:
throws java.lang.Throwable
private java.util.concurrent.CompletionStage lambda$2(java.util.concurrent.Executor, java.lang.Void);
descriptor: (Ljava/util/concurrent/Executor;Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
invokevirtual jdk.incubator.http.Http1Exchange.getResponseAsyncImpl:(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/Http1Exchange<TT;>;
0 1 2 v Ljava/lang/Void;
}
Signature: <T:Ljava/lang/Object;>Ljdk/incubator/http/ExchangeImpl<TT;>;
SourceFile: "Http1Exchange.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract BodyHandler = jdk.incubator.http.HttpResponse$BodyHandler of jdk.incubator.http.HttpResponse
public abstract BodyProcessor = jdk.incubator.http.HttpResponse$BodyProcessor of jdk.incubator.http.HttpResponse
public abstract ExceptionalSupplier = jdk.incubator.http.internal.common.MinimalFuture$ExceptionalSupplier of jdk.incubator.http.internal.common.MinimalFuture