class jdk.internal.net.http.Http1Exchange<T> extends jdk.internal.net.http.ExchangeImpl<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.net.http.Http1Exchange
super_class: jdk.internal.net.http.ExchangeImpl
{
final jdk.internal.net.http.common.Logger debug;
descriptor: Ljdk/internal/net/http/common/Logger;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.HttpRequestImpl request;
descriptor: Ljdk/internal/net/http/HttpRequestImpl;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.Http1Request requestAction;
descriptor: Ljdk/internal/net/http/Http1Request;
flags: (0x0010) ACC_FINAL
private volatile jdk.internal.net.http.Http1Response<T> response;
descriptor: Ljdk/internal/net/http/Http1Response;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljdk/internal/net/http/Http1Response<TT;>;
final jdk.internal.net.http.HttpConnection connection;
descriptor: Ljdk/internal/net/http/HttpConnection;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.HttpClientImpl client;
descriptor: Ljdk/internal/net/http/HttpClientImpl;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0010) ACC_FINAL
private final jdk.internal.net.http.Http1AsyncReceiver asyncReceiver;
descriptor: Ljdk/internal/net/http/Http1AsyncReceiver;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Throwable failed;
descriptor: Ljava/lang/Throwable;
flags: (0x0002) ACC_PRIVATE
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<*>;>;
private final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.util.concurrent.ConcurrentLinkedDeque<jdk.internal.net.http.Http1Exchange$DataPair> outgoing;
descriptor: Ljava/util/concurrent/ConcurrentLinkedDeque;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentLinkedDeque<Ljdk/internal/net/http/Http1Exchange$DataPair;>;
private final jdk.internal.net.http.Http1Exchange<T>.Http1Publisher writePublisher;
descriptor: Ljdk/internal/net/http/Http1Exchange$Http1Publisher;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljdk/internal/net/http/Http1Exchange<TT;>.Http1Publisher;
private final java.util.concurrent.CompletableFuture<jdk.internal.net.http.ExchangeImpl<T>> ;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
private final java.util.concurrent.CompletableFuture<jdk.internal.net.http.ExchangeImpl<T>> bodySentCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
private volatile jdk.internal.net.http.Http1Exchange$Http1BodySubscriber bodySubscriber;
descriptor: Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private jdk.internal.net.http.Http1Exchange$State state;
descriptor: Ljdk/internal/net/http/Http1Exchange$State;
flags: (0x0002) ACC_PRIVATE
Signature: Ljdk/internal/net/http/Http1Exchange$State;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$internal$net$http$Http1Exchange$State;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/internal/net/http/Http1Exchange;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.internal.net.http.Http1Exchange.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "HTTP/1.1 "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
jdk.internal.net.http.HttpRequestImpl request();
descriptor: ()Ljdk/internal/net/http/HttpRequestImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
void <init>(jdk.internal.net.http.Exchange<T>, jdk.internal.net.http.HttpConnection);
descriptor: (Ljdk/internal/net/http/Exchange;Ljdk/internal/net/http/HttpConnection;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokespecial jdk.internal.net.http.ExchangeImpl.<init>:(Ljdk/internal/net/http/Exchange;)V
1: aload 0
aload 0
invokedynamic get(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Supplier;
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/internal/net/http/Http1Exchange.dbgString()Ljava/lang/String; (5)
()Ljava/lang/String;
getstatic jdk.internal.net.http.common.Utils.DEBUG:Z
invokestatic jdk.internal.net.http.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljdk/internal/net/http/common/Logger;
putfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
3: aload 0
new java.util.concurrent.ConcurrentLinkedDeque
dup
invokespecial java.util.concurrent.ConcurrentLinkedDeque.<init>:()V
putfield jdk.internal.net.http.Http1Exchange.outgoing:Ljava/util/concurrent/ConcurrentLinkedDeque;
4: aload 0
new jdk.internal.net.http.Http1Exchange$Http1Publisher
dup
aload 0
invokespecial jdk.internal.net.http.Http1Exchange$Http1Publisher.<init>:(Ljdk/internal/net/http/Http1Exchange;)V
putfield jdk.internal.net.http.Http1Exchange.writePublisher:Ljdk/internal/net/http/Http1Exchange$Http1Publisher;
5: aload 0
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
putfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
6: aload 0
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
putfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
7: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.INITIAL:Ljdk/internal/net/http/Http1Exchange$State;
putfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
8: aload 0
aload 1
invokevirtual jdk.internal.net.http.Exchange.request:()Ljdk/internal/net/http/HttpRequestImpl;
putfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
9: aload 0
aload 1
invokevirtual jdk.internal.net.http.Exchange.client:()Ljdk/internal/net/http/HttpClientImpl;
putfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
10: aload 0
aload 1
invokevirtual jdk.internal.net.http.Exchange.executor:()Ljava/util/concurrent/Executor;
putfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
11: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
12: aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: aload 2
ifnull 17
15: aload 0
aload 2
putfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
16: goto 19
17: StackMap locals: jdk.internal.net.http.Http1Exchange jdk.internal.net.http.Exchange jdk.internal.net.http.HttpConnection
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.getAddress:()Ljava/net/InetSocketAddress;
astore 3
start local 3 18: aload 0
aload 3
aload 0
getfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
getstatic java.net.http.HttpClient$Version.HTTP_1_1:Ljava/net/http/HttpClient$Version;
invokestatic jdk.internal.net.http.HttpConnection.getConnection:(Ljava/net/InetSocketAddress;Ljdk/internal/net/http/HttpClientImpl;Ljdk/internal/net/http/HttpRequestImpl;Ljava/net/http/HttpClient$Version;)Ljdk/internal/net/http/HttpConnection;
putfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
end local 3 19: StackMap locals:
StackMap stack:
aload 0
new jdk.internal.net.http.Http1Request
dup
aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
aload 0
invokespecial jdk.internal.net.http.Http1Request.<init>:(Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/Http1Exchange;)V
putfield jdk.internal.net.http.Http1Exchange.requestAction:Ljdk/internal/net/http/Http1Request;
20: aload 0
new jdk.internal.net.http.Http1AsyncReceiver
dup
aload 0
getfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
aload 0
invokespecial jdk.internal.net.http.Http1AsyncReceiver.<init>:(Ljava/util/concurrent/Executor;Ljdk/internal/net/http/Http1Exchange;)V
putfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
21: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 22 1 exchange Ljdk/internal/net/http/Exchange<TT;>;
0 22 2 connection Ljdk/internal/net/http/HttpConnection;
18 19 3 addr Ljava/net/InetSocketAddress;
Exceptions:
throws java.io.IOException
Signature: (Ljdk/internal/net/http/Exchange<TT;>;Ljdk/internal/net/http/HttpConnection;)V
MethodParameters:
Name Flags
exchange
connection
jdk.internal.net.http.HttpConnection connection();
descriptor: ()Ljdk/internal/net/http/HttpConnection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private void connectFlows(jdk.internal.net.http.HttpConnection);
descriptor: (Ljdk/internal/net/http/HttpConnection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.internal.net.http.HttpConnection.getConnectionFlow:()Ljdk/internal/net/http/common/FlowTube;
astore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 2
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "%s connecting flows"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals: jdk.internal.net.http.common.FlowTube
StackMap stack:
aload 2
aload 0
getfield jdk.internal.net.http.Http1Exchange.writePublisher:Ljdk/internal/net/http/Http1Exchange$Http1Publisher;
3: aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
invokevirtual jdk.internal.net.http.Http1AsyncReceiver.subscriber:()Ljdk/internal/net/http/common/FlowTube$TubeSubscriber;
4: invokeinterface jdk.internal.net.http.common.FlowTube.connectFlows:(Ljdk/internal/net/http/common/FlowTube$TubePublisher;Ljdk/internal/net/http/common/FlowTube$TubeSubscriber;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 6 1 connection Ljdk/internal/net/http/HttpConnection;
1 6 2 tube Ljdk/internal/net/http/common/FlowTube;
MethodParameters:
Name Flags
connection
java.util.concurrent.CompletableFuture<jdk.internal.net.http.ExchangeImpl<T>> sendHeadersAsync();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Sending headers only"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
iconst_1
invokevirtual jdk.internal.net.http.Http1AsyncReceiver.setRetryOnError:(Z)V
2: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
ifnonnull 4
3: aload 0
new jdk.internal.net.http.Http1Response
dup
aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
aload 0
aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
invokespecial jdk.internal.net.http.Http1Response.<init>:(Ljdk/internal/net/http/HttpConnection;Ljdk/internal/net/http/Http1Exchange;Ljdk/internal/net/http/Http1AsyncReceiver;)V
putfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 5
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "response created in advance"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.connected:()Z
ifne 24
6: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 7
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "initiating connect async"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
7: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
aload 0
getfield jdk.internal.net.http.Http1Exchange.exchange:Ljdk/internal/net/http/Exchange;
invokevirtual jdk.internal.net.http.HttpConnection.connectAsync:(Ljdk/internal/net/http/Exchange;)Ljava/util/concurrent/CompletableFuture;
8: aload 0
invokedynamic apply(Ljdk/internal/net/http/Http1Exchange;)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/internal/net/http/Http1Exchange.lambda$1(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;
9: astore 1
start local 1 10: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
11: aload 0
getfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
dup
astore 2
start local 2 12: ifnonnull 14
13: aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals: java.util.concurrent.CompletableFuture java.lang.Throwable java.lang.Object
StackMap stack:
aload 3
monitorexit
15: goto 18
end local 2 StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.CompletableFuture top java.lang.Object
StackMap stack: java.lang.Throwable
16: aload 3
monitorexit
17: athrow
start local 2 18: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.CompletableFuture java.lang.Throwable
StackMap stack:
aload 2
ifnull 26
19: aload 0
getfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.isSelectorThread:()Z
ifeq 22
20: aload 0
getfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
aload 1
aload 2
invokedynamic run(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Http1Exchange.lambda$2(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)V (6)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
21: goto 26
22: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 2 23: goto 26
end local 1 24: StackMap locals:
StackMap stack:
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
astore 1
start local 1 25: aload 1
aconst_null
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
26: StackMap locals: java.util.concurrent.CompletableFuture
StackMap stack:
aload 1
27: aload 0
invokedynamic apply(Ljdk/internal/net/http/Http1Exchange;)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/internal/net/http/Http1Exchange.lambda$3(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;
28: aload 0
invokedynamic apply(Ljdk/internal/net/http/Http1Exchange;)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/internal/net/http/Http1Exchange.lambda$6(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;
29: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
10 24 1 connectCF Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
25 30 1 connectCF Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
12 16 2 cancelled Ljava/lang/Throwable;
18 23 2 cancelled Ljava/lang/Throwable;
Exception table:
from to target type
11 15 16 any
16 17 16 any
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
private void cancelIfFailed(java.util.concurrent.Flow$Subscription);
descriptor: (Ljava/util/concurrent/Flow$Subscription;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
getfield jdk.internal.net.http.Http1AsyncReceiver.whenFinished:Ljdk/internal/net/http/common/MinimalFuture;
aload 0
aload 1
invokedynamic accept(Ljdk/internal/net/http/Http1Exchange;Ljava/util/concurrent/Flow$Subscription;)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
jdk/internal/net/http/Http1Exchange.lambda$7(Ljava/util/concurrent/Flow$Subscription;Ljava/lang/Void;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Void;Ljava/lang/Throwable;)V
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
2: invokevirtual jdk.internal.net.http.common.MinimalFuture.whenCompleteAsync:(Ljava/util/function/BiConsumer;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 4 1 s Ljava/util/concurrent/Flow$Subscription;
MethodParameters:
Name Flags
s
java.util.concurrent.CompletableFuture<jdk.internal.net.http.ExchangeImpl<T>> sendBodyAsync();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=6, locals=2, args_size=1
start local 0 0: getstatic jdk.internal.net.http.Http1Exchange.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 2
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "sendBodyAsync"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.Http1Exchange.requestAction:Ljdk/internal/net/http/Http1Request;
invokevirtual jdk.internal.net.http.Http1Request.continueRequest:()Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
putfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
3: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 8
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "bodySubscriber is %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
4: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
ifnonnull 5
aconst_null
goto 6
StackMap locals: jdk.internal.net.http.Http1Exchange
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
5: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
StackMap locals: jdk.internal.net.http.Http1Exchange
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.Class
6: aastore
7: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
ifnonnull 12
9: aload 0
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokestatic jdk.internal.net.http.Http1Exchange$Http1BodySubscriber.completeSubscriber:(Ljdk/internal/net/http/common/Logger;)Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
putfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
10: aload 0
getstatic jdk.internal.net.http.Http1Exchange$Http1BodySubscriber.COMPLETED:Ljava/util/List;
invokevirtual jdk.internal.net.http.Http1Exchange.appendToOutgoing:(Ljava/util/List;)V
11: goto 19
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
getfield jdk.internal.net.http.Http1Exchange$Http1BodySubscriber.whenSubscribed:Ljdk/internal/net/http/common/MinimalFuture;
13: aload 0
invokedynamic accept(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Consumer;
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;)V
jdk/internal/net/http/Http1Exchange.lambda$8(Ljava/util/concurrent/Flow$Subscription;)V (7)
(Ljava/util/concurrent/Flow$Subscription;)V
invokevirtual jdk.internal.net.http.common.MinimalFuture.thenAccept:(Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
14: aload 0
invokedynamic accept(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Consumer;
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;)V
jdk/internal/net/http/Http1Exchange.lambda$9(Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokevirtual java.util.concurrent.CompletableFuture.thenAccept:(Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
pop
15: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 1
start local 1 17: aload 0
aload 1
invokevirtual jdk.internal.net.http.Http1Exchange.cancelImpl:(Ljava/lang/Throwable;)V
18: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 1 19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "sendBodyAsync"
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
invokestatic jdk.internal.net.http.common.Utils.wrapForDebug:(Ljdk/internal/net/http/common/Logger;Ljava/lang/String;Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
17 19 1 t Ljava/lang/Throwable;
Exception table:
from to target type
2 15 16 Class java.lang.Throwable
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
java.util.concurrent.CompletableFuture<jdk.internal.net.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.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "reading headers"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
aload 1
invokevirtual jdk.internal.net.http.Http1Response.readHeadersAsync:(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
astore 2
start local 2 2: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
astore 3
start local 3 5: aload 0
aconst_null
putfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
6: aload 4
monitorexit
7: goto 10
end local 3 StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture top java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
start local 3 10: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.lang.Throwable
StackMap stack:
aload 3
ifnull 27
11: ldc "Http1Exchange: request [{0}/timeout={1}ms]\n\tCompleting exceptionally with {2}\n"
iconst_3
anewarray java.lang.Object
dup
iconst_0
12: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
aastore
dup
iconst_1
13: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 18
14: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.time.Duration
invokevirtual java.time.Duration.getSeconds:()J
ldc 1000
lmul
15: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.time.Duration
invokevirtual java.time.Duration.getNano:()I
ldc 1000000
idiv
i2l
16: ladd
17: goto 19
StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.lang.Throwable
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
18: ldc -1
19: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.lang.Throwable
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
20: aload 3
aastore
21: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
22: aload 2
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
istore 4
start local 4 23: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 27
24: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
iload 4
ifeq 25
new java.lang.StringBuilder
dup
ldc "completed response with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 26
25: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.lang.Throwable int
StackMap stack: jdk.internal.net.http.common.Logger
new java.lang.StringBuilder
dup
ldc "response already completed, ignoring "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.lang.Throwable int
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
end local 4 27: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "getResponseAsync"
aload 2
invokestatic jdk.internal.net.http.common.Utils.wrapForDebug:(Ljdk/internal/net/http/common/Logger;Ljava/lang/String;Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 28 1 executor Ljava/util/concurrent/Executor;
2 28 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
5 8 3 cause Ljava/lang/Throwable;
10 28 3 cause Ljava/lang/Throwable;
23 27 4 acknowledged Z
Exception table:
from to target type
3 7 8 any
8 9 8 any
Signature: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
executor
java.util.concurrent.CompletableFuture<T> readBodyAsync(java.net.http.HttpResponse$BodyHandler<T>, boolean, java.util.concurrent.Executor);
descriptor: (Ljava/net/http/HttpResponse$BodyHandler;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
new jdk.internal.net.http.ResponseInfoImpl
dup
aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
invokevirtual jdk.internal.net.http.Http1Response.responseCode:()I
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
invokevirtual jdk.internal.net.http.Http1Response.responseHeaders:()Ljava/net/http/HttpHeaders;
2: getstatic java.net.http.HttpClient$Version.HTTP_1_1:Ljava/net/http/HttpClient$Version;
invokespecial jdk.internal.net.http.ResponseInfoImpl.<init>:(ILjava/net/http/HttpHeaders;Ljava/net/http/HttpClient$Version;)V
3: invokeinterface java.net.http.HttpResponse$BodyHandler.apply:(Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
astore 4
start local 4 4: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
aload 4
5: iload 2
6: aload 3
7: invokevirtual jdk.internal.net.http.Http1Response.readBody:(Ljava/net/http/HttpResponse$BodySubscriber;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/internal/net/http/Http1Exchange<TT;>;
0 9 1 handler Ljava/net/http/HttpResponse$BodyHandler<TT;>;
0 9 2 returnConnectionToPool Z
0 9 3 executor Ljava/util/concurrent/Executor;
4 9 4 bs Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
8 9 5 bodyCF Ljava/util/concurrent/CompletableFuture<TT;>;
Signature: (Ljava/net/http/HttpResponse$BodyHandler<TT;>;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<TT;>;
MethodParameters:
Name Flags
handler
returnConnectionToPool
executor
java.util.concurrent.CompletableFuture<java.lang.Void> ignoreBody();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
aload 0
getfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.Http1Response.ignoreBody:(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
java.nio.ByteBuffer drainLeftOverBytes();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
invokevirtual jdk.internal.net.http.Http1AsyncReceiver.stop:()V
2: aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
getstatic jdk.internal.net.http.common.Utils.EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer;
invokevirtual jdk.internal.net.http.Http1AsyncReceiver.drain:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
aload 1
monitorexit
3: areturn
4: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
Exception table:
from to target type
1 3 4 any
4 5 4 any
void released();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual jdk.internal.net.http.Http1Response.completed:()V
2: StackMap locals: jdk.internal.net.http.Http1Response
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
invokevirtual jdk.internal.net.http.Http1AsyncReceiver.clear:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
1 4 1 resp Ljdk/internal/net/http/Http1Response<TT;>;
void completed();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual jdk.internal.net.http.Http1Response.completed:()V
2: StackMap locals: jdk.internal.net.http.Http1Response
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
1 3 1 resp Ljdk/internal/net/http/Http1Response<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.internal.net.http.Http1Exchange.cancelImpl:(Ljava/lang/Throwable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
void cancel(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.internal.net.http.Http1Exchange.cancelImpl:(Ljava/lang/Throwable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 2 1 cause Ljava/io/IOException;
MethodParameters:
Name Flags
cause
private void cancelImpl(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=10, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
3: aload 0
getfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
dup
astore 4
start local 4 4: ifnonnull 6
5: aload 0
aload 1
dup
astore 4
putfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
6: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 8
7: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.requestAction:Ljdk/internal/net/http/Http1Request;
ifnull 12
aload 0
getfield jdk.internal.net.http.Http1Exchange.requestAction:Ljdk/internal/net/http/Http1Request;
invokevirtual jdk.internal.net.http.Http1Request.finished:()Z
ifeq 12
9: aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
ifnull 12
aload 0
getfield jdk.internal.net.http.Http1Exchange.response:Ljdk/internal/net/http/Http1Response;
invokevirtual jdk.internal.net.http.Http1Response.finished:()Z
ifeq 12
10: aload 5
monitorexit
11: return
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.writePublisher:Ljdk/internal/net/http/Http1Exchange$Http1Publisher;
getfield jdk.internal.net.http.Http1Exchange$Http1Publisher.writeScheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.stop:()V
13: aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 26
14: 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
15: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
aastore
dup
iconst_1
16: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 21
17: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.time.Duration
invokevirtual java.time.Duration.getSeconds:()J
ldc 1000
lmul
18: aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast java.time.Duration
invokevirtual java.time.Duration.getNano:()I
ldc 1000000
idiv
i2l
19: ladd
20: goto 22
StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
21: ldc -1
22: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object
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
23: aload 1
aastore
24: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
25: goto 34
26: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 32
StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object top java.util.Iterator
StackMap stack:
27: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 6
start local 6 28: aload 6
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 32
29: aload 2
ifnonnull 30
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 2
30: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object java.util.concurrent.CompletableFuture java.util.Iterator
StackMap stack:
aload 2
aload 6
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
31: iinc 3 1
end local 6 32: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 27
33: aload 0
getfield jdk.internal.net.http.Http1Exchange.operations:Ljava/util/List;
invokeinterface java.util.List.clear:()V
34: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.lang.Object
StackMap stack:
aload 5
monitorexit
35: goto 38
end local 4 StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int top java.lang.Object
StackMap stack: java.lang.Throwable
36: aload 5
monitorexit
37: athrow
start local 4 38: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Http1Exchange.cancel: count="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
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.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
39: aload 2
ifnull 53
40: aload 0
getfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.isSelectorThread:()Z
ifeq 42
41: aload 0
getfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
goto 43
42: StackMap locals:
StackMap stack:
aload 0
invokedynamic execute(Ljdk/internal/net/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/internal/net/http/Http1Exchange.runInline(Ljava/lang/Runnable;)V (7)
(Ljava/lang/Runnable;)V
43: StackMap locals:
StackMap stack: java.util.concurrent.Executor
astore 5
start local 5 44: aload 4
astore 7
start local 7 45: goto 48
46: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable java.util.concurrent.Executor top java.lang.Throwable
StackMap stack:
aload 2
invokevirtual java.util.LinkedList.poll:()Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 8
start local 8 47: aload 5
aload 0
aload 8
aload 7
invokedynamic run(Ljdk/internal/net/http/Http1Exchange;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Http1Exchange.lambda$11(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)V (7)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
end local 8 48: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 46
end local 7 end local 5 49: goto 53
StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Throwable java.util.LinkedList int java.lang.Throwable
StackMap stack: java.lang.Throwable
50: astore 9
51: aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.close:()V
52: aload 9
athrow
53: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.close:()V
54: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 55 1 cause Ljava/lang/Throwable;
1 55 2 toComplete Ljava/util/LinkedList<Ljava/util/concurrent/CompletableFuture<*>;>;
2 55 3 count I
4 36 4 error Ljava/lang/Throwable;
38 55 4 error Ljava/lang/Throwable;
28 32 6 cf Ljava/util/concurrent/CompletableFuture<*>;
44 49 5 exec Ljava/util/concurrent/Executor;
45 49 7 x Ljava/lang/Throwable;
47 48 8 cf Ljava/util/concurrent/CompletableFuture<*>;
Exception table:
from to target type
3 11 36 any
12 35 36 any
36 37 36 any
38 50 50 any
MethodParameters:
Name Flags
cause
private void runInline(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.net.http.Http1Exchange.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.isSelectorThread:()Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.lang.Runnable.run:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 3 1 run Ljava/lang/Runnable;
MethodParameters:
Name Flags
run
boolean isCanceled();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
monitorexit
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
Exception table:
from to target type
1 4 5 any
5 6 5 any
java.lang.Throwable getCancelCause();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.failed:Ljava/lang/Throwable;
aload 1
monitorexit
2: areturn
3: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
Exception table:
from to target type
1 2 3 any
3 4 3 any
void appendToOutgoing(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new jdk.internal.net.http.Http1Exchange$DataPair
dup
aconst_null
aload 1
invokespecial jdk.internal.net.http.Http1Exchange$DataPair.<init>:(Ljava/util/List;Ljava/lang/Throwable;)V
invokevirtual jdk.internal.net.http.Http1Exchange.appendToOutgoing:(Ljdk/internal/net/http/Http1Exchange$DataPair;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 2 1 throwable Ljava/lang/Throwable;
MethodParameters:
Name Flags
throwable
void appendToOutgoing(java.util.List<java.nio.ByteBuffer>);
descriptor: (Ljava/util/List;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new jdk.internal.net.http.Http1Exchange$DataPair
dup
aload 1
aconst_null
invokespecial jdk.internal.net.http.Http1Exchange$DataPair.<init>:(Ljava/util/List;Ljava/lang/Throwable;)V
invokevirtual jdk.internal.net.http.Http1Exchange.appendToOutgoing:(Ljdk/internal/net/http/Http1Exchange$DataPair;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 2 1 item Ljava/util/List<Ljava/nio/ByteBuffer;>;
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;)V
MethodParameters:
Name Flags
item
private void appendToOutgoing(jdk.internal.net.http.Http1Exchange$DataPair);
descriptor: (Ljdk/internal/net/http/Http1Exchange$DataPair;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
new java.lang.StringBuilder
dup
ldc "appending to outgoing "
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 jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.outgoing:Ljava/util/concurrent/ConcurrentLinkedDeque;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedDeque.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield jdk.internal.net.http.Http1Exchange.writePublisher:Ljdk/internal/net/http/Http1Exchange$Http1Publisher;
getfield jdk.internal.net.http.Http1Exchange$Http1Publisher.writeScheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 4 1 dp Ljdk/internal/net/http/Http1Exchange$DataPair;
MethodParameters:
Name Flags
dp
private boolean hasOutgoing();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.outgoing:Ljava/util/concurrent/ConcurrentLinkedDeque;
invokevirtual java.util.concurrent.ConcurrentLinkedDeque.isEmpty:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private void requestMoreBody();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "requesting more request body from the subscriber"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
lconst_1
invokevirtual jdk.internal.net.http.Http1Exchange$Http1BodySubscriber.request:(J)V
2: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 1
start local 1 4: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 5
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Subscription::request failed"
aload 1
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
5: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 1
invokevirtual jdk.internal.net.http.Http1Exchange.cancelImpl:(Ljava/lang/Throwable;)V
6: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
4 7 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
private jdk.internal.net.http.Http1Exchange$DataPair getOutgoing();
descriptor: ()Ljdk/internal/net/http/Http1Exchange$DataPair;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.theExecutor:()Ljdk/internal/net/http/HttpClientImpl$DelegatingExecutor;
astore 1
start local 1 1: aload 0
getfield jdk.internal.net.http.Http1Exchange.outgoing:Ljava/util/concurrent/ConcurrentLinkedDeque;
invokevirtual java.util.concurrent.ConcurrentLinkedDeque.pollFirst:()Ljava/lang/Object;
checkcast jdk.internal.net.http.Http1Exchange$DataPair
astore 2
start local 2 2: aload 0
getfield jdk.internal.net.http.Http1Exchange.writePublisher:Ljdk/internal/net/http/Http1Exchange$Http1Publisher;
getfield jdk.internal.net.http.Http1Exchange$Http1Publisher.cancelled:Z
ifeq 12
3: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 4
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "cancelling upstream publisher"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
4: StackMap locals: java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
ifnull 7
5: aload 1
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySubscriber:Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Ljdk/internal/net/http/Http1Exchange$Http1BodySubscriber;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Http1Exchange$Http1BodySubscriber.cancelSubscription()V (5)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
6: goto 9
StackMap locals:
StackMap stack:
7: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 9
8: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "bodySubscriber is null"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic get(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Supplier;
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/internal/net/http/Http1Exchange.lambda$13()Ljdk/internal/net/http/ExchangeImpl; (7)
()Ljdk/internal/net/http/ExchangeImpl;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
pop
10: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic get(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Supplier;
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/internal/net/http/Http1Exchange.lambda$14()Ljdk/internal/net/http/ExchangeImpl; (7)
()Ljdk/internal/net/http/ExchangeImpl;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
pop
11: aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 2
ifnonnull 14
13: aconst_null
areturn
14: StackMap locals:
StackMap stack:
aload 2
getfield jdk.internal.net.http.Http1Exchange$DataPair.throwable:Ljava/lang/Throwable;
ifnull 23
15: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
16: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.ERROR:Ljdk/internal/net/http/Http1Exchange$State;
putfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
17: aload 4
monitorexit
18: goto 21
StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair top java.lang.Object
StackMap stack: java.lang.Throwable
19: aload 4
monitorexit
20: athrow
21: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair
StackMap stack:
aload 1
aload 0
aload 2
invokedynamic run(Ljdk/internal/net/http/Http1Exchange;Ljdk/internal/net/http/Http1Exchange$DataPair;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Http1Exchange.lambda$15(Ljdk/internal/net/http/Http1Exchange$DataPair;)V (7)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
22: aload 2
areturn
23: StackMap locals:
StackMap stack:
invokestatic jdk.internal.net.http.Http1Exchange.$SWITCH_TABLE$jdk$internal$net$http$Http1Exchange$State:()[I
aload 0
getfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 45
2: 24
3: 33
4: 45
5: 45
6: 45
default: 45
}
24: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
25: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.BODY:Ljdk/internal/net/http/Http1Exchange$State;
putfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
26: aload 4
monitorexit
27: goto 30
StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair top java.lang.Object
StackMap stack: java.lang.Throwable
28: aload 4
monitorexit
29: athrow
30: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 31
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "initiating completion of headersSentCF"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic get(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Supplier;
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/internal/net/http/Http1Exchange.lambda$16()Ljdk/internal/net/http/ExchangeImpl; (7)
()Ljdk/internal/net/http/ExchangeImpl;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
pop
32: goto 46
33: StackMap locals:
StackMap stack:
aload 2
getfield jdk.internal.net.http.Http1Exchange$DataPair.data:Ljava/util/List;
getstatic jdk.internal.net.http.Http1Exchange$Http1BodySubscriber.COMPLETED:Ljava/util/List;
if_acmpne 43
34: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
35: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.COMPLETING:Ljdk/internal/net/http/Http1Exchange$State;
putfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
36: aload 4
monitorexit
37: goto 40
StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair top java.lang.Object
StackMap stack: java.lang.Throwable
38: aload 4
monitorexit
39: athrow
40: StackMap locals: jdk.internal.net.http.Http1Exchange java.util.concurrent.Executor jdk.internal.net.http.Http1Exchange$DataPair
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 41
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "initiating completion of bodySentCF"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
41: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic get(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Supplier;
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/internal/net/http/Http1Exchange.lambda$17()Ljdk/internal/net/http/ExchangeImpl; (7)
()Ljdk/internal/net/http/ExchangeImpl;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
pop
42: goto 46
43: StackMap locals:
StackMap stack:
aload 1
aload 0
invokedynamic run(Ljdk/internal/net/http/Http1Exchange;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Http1Exchange.requestMoreBody()V (7)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
44: goto 46
45: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.Http1Exchange.$assertionsDisabled:Z
ifne 46
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected state:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
46: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
1 47 1 exec Ljava/util/concurrent/Executor;
2 47 2 dp Ljdk/internal/net/http/Http1Exchange$DataPair;
Exception table:
from to target type
16 18 19 any
19 20 19 any
25 27 28 any
28 29 28 any
35 37 38 any
38 39 38 any
java.net.http.HttpClient client();
descriptor: ()Ljava/net/http/HttpClient;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
java.lang.String dbgString();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Http1Exchange"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
static int[] $SWITCH_TABLE$jdk$internal$net$http$Http1Exchange$State();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.internal.net.http.Http1Exchange.$SWITCH_TABLE$jdk$internal$net$http$Http1Exchange$State:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.internal.net.http.Http1Exchange$State.values:()[Ljdk/internal/net/http/Http1Exchange$State;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.BODY:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.COMPLETED:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
bipush 6
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.COMPLETING:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
iconst_5
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.ERROR:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.HEADERS:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
iconst_2
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.INITIAL:Ljdk/internal/net/http/Http1Exchange$State;
invokevirtual jdk.internal.net.http.Http1Exchange$State.ordinal:()I
iconst_1
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
dup
putstatic jdk.internal.net.http.Http1Exchange.$SWITCH_TABLE$jdk$internal$net$http$Http1Exchange$State:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
private java.util.concurrent.CompletionStage lambda$1(java.lang.Void);
descriptor: (Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.finishConnect:()Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 1 1 unused Ljava/lang/Void;
private static void lambda$2(java.util.concurrent.CompletableFuture, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
return
LocalVariableTable:
Start End Slot Name Signature
private java.util.concurrent.CompletionStage lambda$3(java.lang.Void);
descriptor: (Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
astore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.Http1Exchange.asyncReceiver:Ljdk/internal/net/http/Http1AsyncReceiver;
getfield jdk.internal.net.http.Http1AsyncReceiver.whenFinished:Ljdk/internal/net/http/common/MinimalFuture;
aload 0
invokedynamic accept(Ljdk/internal/net/http/Http1Exchange;)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
jdk/internal/net/http/Http1Exchange.lambda$4(Ljava/lang/Void;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Void;Ljava/lang/Throwable;)V
invokevirtual jdk.internal.net.http.common.MinimalFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
pop
2: aload 0
aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.Http1Exchange.connectFlows:(Ljdk/internal/net/http/HttpConnection;)V
3: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 4
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "requestAction.headers"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
4: StackMap locals: java.util.concurrent.CompletableFuture
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.requestAction:Ljdk/internal/net/http/Http1Request;
invokevirtual jdk.internal.net.http.Http1Request.headers:()Ljava/util/List;
astore 3
start local 3 5: aload 0
getfield jdk.internal.net.http.Http1Exchange.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
6: aload 0
getstatic jdk.internal.net.http.Http1Exchange$State.HEADERS:Ljdk/internal/net/http/Http1Exchange$State;
putfield jdk.internal.net.http.Http1Exchange.state:Ljdk/internal/net/http/Http1Exchange$State;
7: aload 4
monitorexit
8: goto 11
StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Void java.util.concurrent.CompletableFuture java.util.List java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 4
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 12
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "setting outgoing with headers"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.Http1Exchange.$assertionsDisabled:Z
ifne 13
aload 0
getfield jdk.internal.net.http.Http1Exchange.outgoing:Ljava/util/concurrent/ConcurrentLinkedDeque;
invokevirtual java.util.concurrent.ConcurrentLinkedDeque.isEmpty:()Z
ifne 13
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected outgoing:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Http1Exchange.outgoing:Ljava/util/concurrent/ConcurrentLinkedDeque;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual jdk.internal.net.http.Http1Exchange.appendToOutgoing:(Ljava/util/List;)V
14: aload 2
aconst_null
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
15: aload 2
16: areturn
end local 3 17: StackMap locals: jdk.internal.net.http.Http1Exchange java.lang.Void java.util.concurrent.CompletableFuture
StackMap stack: java.lang.Throwable
astore 3
start local 3 18: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 19
aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Failed to send headers: %s"
aload 3
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
19: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
20: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
21: aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.close:()V
22: aload 2
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
23: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 24 1 unused Ljava/lang/Void;
1 24 2 cf Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
5 17 3 data Ljava/util/List<Ljava/nio/ByteBuffer;>;
18 24 3 t Ljava/lang/Throwable;
Exception table:
from to target type
6 8 9 any
9 10 9 any
1 16 17 Class java.lang.Throwable
private java.util.concurrent.CompletionStage lambda$6(java.lang.Void);
descriptor: (Ljava/lang/Void;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 1 1 unused Ljava/lang/Void;
private void lambda$7(java.util.concurrent.Flow$Subscription, java.lang.Void, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/Flow$Subscription;Ljava/lang/Void;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 2
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "asyncReceiver finished (failed=%s)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 3
ifnull 5
3: aload 1
invokeinterface java.util.concurrent.Flow$Subscription.cancel:()V
4: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 6 2 r Ljava/lang/Void;
0 6 3 t Ljava/lang/Throwable;
private void lambda$8(java.util.concurrent.Flow$Subscription);
descriptor: (Ljava/util/concurrent/Flow$Subscription;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.internal.net.http.Http1Exchange.cancelIfFailed:(Ljava/util/concurrent/Flow$Subscription;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 1 1 s Ljava/util/concurrent/Flow$Subscription;
private void lambda$9(java.lang.Void);
descriptor: (Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.internal.net.http.Http1Exchange.requestMoreBody:()V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 1 1 s Ljava/lang/Void;
private void lambda$11(java.util.concurrent.CompletableFuture, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/CompletableFuture;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=3, args_size=3
start local 0 0: aload 1
aload 2
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
ifeq 3
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
2: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "%s: completed cf with %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Http1Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
aastore
dup
iconst_1
aload 2
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private jdk.internal.net.http.ExchangeImpl lambda$13();
descriptor: ()Ljdk/internal/net/http/ExchangeImpl;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private jdk.internal.net.http.ExchangeImpl lambda$14();
descriptor: ()Ljdk/internal/net/http/ExchangeImpl;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private void lambda$15(jdk.internal.net.http.Http1Exchange$DataPair);
descriptor: (Ljdk/internal/net/http/Http1Exchange$DataPair;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
aload 1
getfield jdk.internal.net.http.Http1Exchange$DataPair.throwable:Ljava/lang/Throwable;
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.bodySentCF:Ljava/util/concurrent/CompletableFuture;
aload 1
getfield jdk.internal.net.http.Http1Exchange$DataPair.throwable:Ljava/lang/Throwable;
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
2: aload 0
getfield jdk.internal.net.http.Http1Exchange.connection:Ljdk/internal/net/http/HttpConnection;
invokevirtual jdk.internal.net.http.HttpConnection.close:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private jdk.internal.net.http.ExchangeImpl lambda$16();
descriptor: ()Ljdk/internal/net/http/ExchangeImpl;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private jdk.internal.net.http.ExchangeImpl lambda$17();
descriptor: ()Ljdk/internal/net/http/ExchangeImpl;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
private void lambda$4(java.lang.Void, java.lang.Throwable);
descriptor: (Ljava/lang/Void;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 5
1: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
2: aload 0
getfield jdk.internal.net.http.Http1Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "asyncReceiver finished (failed=%s)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 5
4: aload 0
getfield jdk.internal.net.http.Http1Exchange.headersSentCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic get(Ljdk/internal/net/http/Http1Exchange;)Ljava/util/function/Supplier;
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/internal/net/http/Http1Exchange.lambda$5()Ljdk/internal/net/http/ExchangeImpl; (7)
()Ljdk/internal/net/http/ExchangeImpl;
aload 0
getfield jdk.internal.net.http.Http1Exchange.executor:Ljava/util/concurrent/Executor;
invokevirtual java.util.concurrent.CompletableFuture.completeAsync:(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
pop
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
0 6 1 r Ljava/lang/Void;
0 6 2 t Ljava/lang/Throwable;
private jdk.internal.net.http.ExchangeImpl lambda$5();
descriptor: ()Ljdk/internal/net/http/ExchangeImpl;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Http1Exchange<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljdk/internal/net/http/ExchangeImpl<TT;>;
SourceFile: "Http1Exchange.java"
NestMembers:
jdk.internal.net.http.Http1Exchange$DataPair jdk.internal.net.http.Http1Exchange$Http1BodySubscriber jdk.internal.net.http.Http1Exchange$Http1BodySubscriber$1 jdk.internal.net.http.Http1Exchange$Http1Publisher jdk.internal.net.http.Http1Exchange$Http1Publisher$Http1WriteSubscription jdk.internal.net.http.Http1Exchange$Http1Publisher$WriteTask jdk.internal.net.http.Http1Exchange$State
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Version = java.net.http.HttpClient$Version of java.net.http.HttpClient
public abstract BodyHandler = java.net.http.HttpResponse$BodyHandler of java.net.http.HttpResponse
public abstract BodySubscriber = java.net.http.HttpResponse$BodySubscriber of java.net.http.HttpResponse
public abstract ResponseInfo = java.net.http.HttpResponse$ResponseInfo of java.net.http.HttpResponse
public abstract Subscription = java.util.concurrent.Flow$Subscription of java.util.concurrent.Flow
DataPair = jdk.internal.net.http.Http1Exchange$DataPair of jdk.internal.net.http.Http1Exchange
abstract Http1BodySubscriber = jdk.internal.net.http.Http1Exchange$Http1BodySubscriber of jdk.internal.net.http.Http1Exchange
final Http1Publisher = jdk.internal.net.http.Http1Exchange$Http1Publisher of jdk.internal.net.http.Http1Exchange
final State = jdk.internal.net.http.Http1Exchange$State of jdk.internal.net.http.Http1Exchange
final DelegatingExecutor = jdk.internal.net.http.HttpClientImpl$DelegatingExecutor of jdk.internal.net.http.HttpClientImpl
public abstract TubePublisher = jdk.internal.net.http.common.FlowTube$TubePublisher of jdk.internal.net.http.common.FlowTube
public abstract TubeSubscriber = jdk.internal.net.http.common.FlowTube$TubeSubscriber of jdk.internal.net.http.common.FlowTube