final class jdk.internal.net.http.Exchange<T>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.net.http.Exchange
super_class: java.lang.Object
{
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.HttpClientImpl client;
descriptor: Ljdk/internal/net/http/HttpClientImpl;
flags: (0x0010) ACC_FINAL
volatile jdk.internal.net.http.ExchangeImpl<T> exchImpl;
descriptor: Ljdk/internal/net/http/ExchangeImpl;
flags: (0x0040) ACC_VOLATILE
Signature: Ljdk/internal/net/http/ExchangeImpl<TT;>;
volatile java.util.concurrent.CompletableFuture<? extends jdk.internal.net.http.ExchangeImpl<T>> exchangeCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/CompletableFuture<+Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
volatile java.util.concurrent.CompletableFuture<java.lang.Void> bodyIgnored;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
private volatile java.io.IOException failed;
descriptor: Ljava/io/IOException;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final java.security.AccessControlContext acc;
descriptor: Ljava/security/AccessControlContext;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.MultiExchange<T> multi;
descriptor: Ljdk/internal/net/http/MultiExchange;
flags: (0x0010) ACC_FINAL
Signature: Ljdk/internal/net/http/MultiExchange<TT;>;
final java.util.concurrent.Executor parentExecutor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0010) ACC_FINAL
boolean upgrading;
descriptor: Z
flags: (0x0000)
final jdk.internal.net.http.PushGroup<T> pushGroup;
descriptor: Ljdk/internal/net/http/PushGroup;
flags: (0x0010) ACC_FINAL
Signature: Ljdk/internal/net/http/PushGroup<TT;>;
final java.lang.String dbgTag;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.Exchange$ConnectionAborter connectionAborter;
descriptor: Ljdk/internal/net/http/Exchange$ConnectionAborter;
flags: (0x0010) ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, 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/Exchange;
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.Exchange.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.internal.net.http.HttpRequestImpl, jdk.internal.net.http.MultiExchange<T>);
descriptor: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/MultiExchange;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokedynamic get(Ljdk/internal/net/http/Exchange;)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/Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
2: aload 0
new jdk.internal.net.http.Exchange$ConnectionAborter
dup
invokespecial jdk.internal.net.http.Exchange$ConnectionAborter.<init>:()V
putfield jdk.internal.net.http.Exchange.connectionAborter:Ljdk/internal/net/http/Exchange$ConnectionAborter;
3: aload 0
aload 1
putfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
4: aload 0
iconst_0
putfield jdk.internal.net.http.Exchange.upgrading:Z
5: aload 0
aload 2
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
putfield jdk.internal.net.http.Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
6: aload 0
aload 2
putfield jdk.internal.net.http.Exchange.multi:Ljdk/internal/net/http/MultiExchange;
7: aload 0
aload 2
getfield jdk.internal.net.http.MultiExchange.acc:Ljava/security/AccessControlContext;
putfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
8: aload 0
aload 2
getfield jdk.internal.net.http.MultiExchange.executor:Ljdk/internal/net/http/HttpClientImpl$DelegatingExecutor;
putfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
9: aload 0
aload 2
getfield jdk.internal.net.http.MultiExchange.pushGroup:Ljdk/internal/net/http/PushGroup;
putfield jdk.internal.net.http.Exchange.pushGroup:Ljdk/internal/net/http/PushGroup;
10: aload 0
ldc "Exchange"
putfield jdk.internal.net.http.Exchange.dbgTag:Ljava/lang/String;
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 12 1 request Ljdk/internal/net/http/HttpRequestImpl;
0 12 2 multi Ljdk/internal/net/http/MultiExchange<TT;>;
Signature: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/MultiExchange<TT;>;)V
MethodParameters:
Name Flags
request
multi
void <init>(jdk.internal.net.http.HttpRequestImpl, jdk.internal.net.http.MultiExchange<T>, java.security.AccessControlContext);
descriptor: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/MultiExchange;Ljava/security/AccessControlContext;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokedynamic get(Ljdk/internal/net/http/Exchange;)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/Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
2: aload 0
new jdk.internal.net.http.Exchange$ConnectionAborter
dup
invokespecial jdk.internal.net.http.Exchange$ConnectionAborter.<init>:()V
putfield jdk.internal.net.http.Exchange.connectionAborter:Ljdk/internal/net/http/Exchange$ConnectionAborter;
3: aload 0
aload 1
putfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
4: aload 0
aload 3
putfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
5: aload 0
iconst_0
putfield jdk.internal.net.http.Exchange.upgrading:Z
6: aload 0
aload 2
invokevirtual jdk.internal.net.http.MultiExchange.client:()Ljdk/internal/net/http/HttpClientImpl;
putfield jdk.internal.net.http.Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
7: aload 0
aload 2
putfield jdk.internal.net.http.Exchange.multi:Ljdk/internal/net/http/MultiExchange;
8: aload 0
aload 2
getfield jdk.internal.net.http.MultiExchange.executor:Ljdk/internal/net/http/HttpClientImpl$DelegatingExecutor;
putfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
9: aload 0
aload 2
getfield jdk.internal.net.http.MultiExchange.pushGroup:Ljdk/internal/net/http/PushGroup;
putfield jdk.internal.net.http.Exchange.pushGroup:Ljdk/internal/net/http/PushGroup;
10: aload 0
ldc "Exchange"
putfield jdk.internal.net.http.Exchange.dbgTag:Ljava/lang/String;
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 12 1 request Ljdk/internal/net/http/HttpRequestImpl;
0 12 2 multi Ljdk/internal/net/http/MultiExchange<TT;>;
0 12 3 acc Ljava/security/AccessControlContext;
Signature: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/MultiExchange<TT;>;Ljava/security/AccessControlContext;)V
MethodParameters:
Name Flags
request
multi
acc
jdk.internal.net.http.PushGroup<T> getPushGroup();
descriptor: ()Ljdk/internal/net/http/PushGroup;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.pushGroup:Ljdk/internal/net/http/PushGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
Signature: ()Ljdk/internal/net/http/PushGroup<TT;>;
java.util.concurrent.Executor executor();
descriptor: ()Ljava/util/concurrent/Executor;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
public jdk.internal.net.http.HttpRequestImpl request();
descriptor: ()Ljdk/internal/net/http/HttpRequestImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
public java.util.Optional<java.time.Duration> remainingConnectTimeout();
descriptor: ()Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.multi:Ljdk/internal/net/http/MultiExchange;
invokevirtual jdk.internal.net.http.MultiExchange.remainingConnectTimeout:()Ljava/util/Optional;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
Signature: ()Ljava/util/Optional<Ljava/time/Duration;>;
jdk.internal.net.http.HttpClientImpl client();
descriptor: ()Ljdk/internal/net/http/HttpClientImpl;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
void nullBody(java.net.http.HttpResponse<T>, java.lang.Throwable);
descriptor: (Ljava/net/http/HttpResponse;Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
aload 1
aload 2
invokevirtual jdk.internal.net.http.ExchangeImpl.nullBody:(Ljava/net/http/HttpResponse;Ljava/lang/Throwable;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 2 1 resp Ljava/net/http/HttpResponse<TT;>;
0 2 2 t Ljava/lang/Throwable;
Signature: (Ljava/net/http/HttpResponse<TT;>;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
resp
t
public java.util.concurrent.CompletableFuture<T> readBodyAsync(java.net.http.HttpResponse$BodyHandler<T>);
descriptor: (Ljava/net/http/HttpResponse$BodyHandler;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Exchange.bodyIgnored:Ljava/util/concurrent/CompletableFuture;
ifnull 1
aconst_null
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
aload 1
aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.isWebSocket:()Z
ifeq 2
iconst_0
goto 3
StackMap locals: jdk.internal.net.http.Exchange java.net.http.HttpResponse$BodyHandler
StackMap stack: jdk.internal.net.http.ExchangeImpl java.net.http.HttpResponse$BodyHandler
2: iconst_1
StackMap locals: jdk.internal.net.http.Exchange java.net.http.HttpResponse$BodyHandler
StackMap stack: jdk.internal.net.http.ExchangeImpl java.net.http.HttpResponse$BodyHandler int
3: aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.ExchangeImpl.readBodyAsync:(Ljava/net/http/HttpResponse$BodyHandler;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
4: aload 0
invokedynamic accept(Ljdk/internal/net/http/Exchange;)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/Exchange.lambda$1(Ljava/lang/Object;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Object;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
5: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 6 1 handler Ljava/net/http/HttpResponse$BodyHandler<TT;>;
Signature: (Ljava/net/http/HttpResponse$BodyHandler<TT;>;)Ljava/util/concurrent/CompletableFuture<TT;>;
MethodParameters:
Name Flags
handler
public java.util.concurrent.CompletableFuture<java.lang.Void> ignoreBody();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.bodyIgnored:Ljava/util/concurrent/CompletableFuture;
ifnull 1
aload 0
getfield jdk.internal.net.http.Exchange.bodyIgnored:Ljava/util/concurrent/CompletableFuture;
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
invokevirtual jdk.internal.net.http.ExchangeImpl.ignoreBody:()Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Exchange<TT;>;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
public void released();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual jdk.internal.net.http.ExchangeImpl.released:()V
2: StackMap locals: jdk.internal.net.http.ExchangeImpl
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Exchange<TT;>;
1 3 1 impl Ljdk/internal/net/http/ExchangeImpl<*>;
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
ifnull 3
1: aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
invokevirtual jdk.internal.net.http.ExchangeImpl.cancel:()V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
new java.io.IOException
dup
ldc "Request cancelled"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
invokevirtual jdk.internal.net.http.Exchange.cancel:(Ljava/io/IOException;)V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/Exchange<TT;>;
public void cancel(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "cancel exchImpl: %s, with \"%s\""
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
aastore
dup
iconst_1
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
astore 2
start local 2 2: aload 2
ifnull 6
3: aload 0
getfield jdk.internal.net.http.Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Cancelling exchImpl: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: jdk.internal.net.http.ExchangeImpl
StackMap stack:
aload 2
aload 1
invokevirtual jdk.internal.net.http.ExchangeImpl.cancel:(Ljava/io/IOException;)V
5: goto 9
6: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield jdk.internal.net.http.Exchange.failed:Ljava/io/IOException;
7: aload 0
getfield jdk.internal.net.http.Exchange.connectionAborter:Ljdk/internal/net/http/Exchange$ConnectionAborter;
invokevirtual jdk.internal.net.http.Exchange$ConnectionAborter.closeConnection:()V
8: aload 0
invokevirtual jdk.internal.net.http.Exchange.checkCancelled:()V
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 10 1 cause Ljava/io/IOException;
2 10 2 impl Ljdk/internal/net/http/ExchangeImpl<*>;
MethodParameters:
Name Flags
cause
private void checkCancelled();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: aload 0
getfield jdk.internal.net.http.Exchange.failed:Ljava/io/IOException;
ifnull 12
4: aload 0
dup
astore 4
monitorenter
5: aload 0
getfield jdk.internal.net.http.Exchange.failed:Ljava/io/IOException;
astore 2
6: aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
astore 1
7: aload 0
getfield jdk.internal.net.http.Exchange.exchangeCF:Ljava/util/concurrent/CompletableFuture;
astore 3
8: aload 4
monitorexit
9: goto 12
StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.ExchangeImpl java.io.IOException java.util.concurrent.CompletableFuture jdk.internal.net.http.Exchange
StackMap stack: java.lang.Throwable
10: aload 4
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 2
ifnonnull 13
return
13: StackMap locals:
StackMap stack:
aload 1
ifnull 18
14: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 15
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Cancelling exchImpl: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual jdk.internal.net.http.ExchangeImpl.cancel:(Ljava/io/IOException;)V
16: aload 0
aconst_null
putfield jdk.internal.net.http.Exchange.failed:Ljava/io/IOException;
17: goto 30
18: StackMap locals:
StackMap stack:
ldc "Exchange: request [{0}/timeout={1}ms] no impl is set.\n\tCan''t cancel yet with {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
19: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
aastore
dup
iconst_1
20: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.timeout:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifeq 25
21: aload 0
getfield jdk.internal.net.http.Exchange.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
22: aload 0
getfield jdk.internal.net.http.Exchange.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
23: ladd
24: goto 26
StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.ExchangeImpl java.io.IOException java.util.concurrent.CompletableFuture
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
25: ldc -1
26: StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.ExchangeImpl java.io.IOException java.util.concurrent.CompletableFuture
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
27: aload 2
aastore
28: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
29: aload 3
ifnull 30
aload 3
aload 2
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
30: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljdk/internal/net/http/Exchange<TT;>;
1 31 1 impl Ljdk/internal/net/http/ExchangeImpl<*>;
2 31 2 cause Ljava/io/IOException;
3 31 3 cf Ljava/util/concurrent/CompletableFuture<+Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
Exception table:
from to target type
5 9 10 any
10 11 10 any
public void h2Upgrade();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield jdk.internal.net.http.Exchange.upgrading:Z
1: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
aload 0
getfield jdk.internal.net.http.Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.client2:()Ljdk/internal/net/http/Http2ClientImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.setH2Upgrade:(Ljdk/internal/net/http/Http2ClientImpl;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Exchange<TT;>;
synchronized java.io.IOException getCancelCause();
descriptor: ()Ljava/io/IOException;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.failed:Ljava/io/IOException;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
private java.util.concurrent.CompletableFuture<? extends jdk.internal.net.http.ExchangeImpl<T>> establishExchange(jdk.internal.net.http.HttpConnection);
descriptor: (Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 4
1: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "establishing exchange for %s,%n\t proxy=%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
2: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
aastore
3: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.Exchange.getCancelCause:()Ljava/io/IOException;
astore 2
start local 2 5: aload 0
invokevirtual jdk.internal.net.http.Exchange.checkCancelled:()V
6: aload 2
ifnull 8
7: aload 2
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 1
invokestatic jdk.internal.net.http.ExchangeImpl.get:(Ljdk/internal/net/http/Exchange;Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
astore 3
start local 3 9: aload 0
dup
astore 5
monitorenter
10: aload 0
aload 3
putfield jdk.internal.net.http.Exchange.exchangeCF:Ljava/util/concurrent/CompletableFuture;
aload 5
monitorexit
11: goto 14
StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.HttpConnection java.lang.Throwable java.util.concurrent.CompletableFuture top jdk.internal.net.http.Exchange
StackMap stack: java.lang.Throwable
12: aload 5
monitorexit
13: athrow
14: StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.HttpConnection java.lang.Throwable java.util.concurrent.CompletableFuture
StackMap stack:
aload 3
aload 0
aload 3
invokedynamic accept(Ljdk/internal/net/http/Exchange;Ljava/util/concurrent/CompletableFuture;)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/Exchange.lambda$2(Ljava/util/concurrent/CompletableFuture;Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)V (7)
(Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
astore 4
start local 4 15: aload 0
invokevirtual jdk.internal.net.http.Exchange.checkCancelled:()V
16: aload 4
aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.lambda$3(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage; (7)
(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 17 1 connection Ljdk/internal/net/http/HttpConnection;
5 17 2 t Ljava/lang/Throwable;
9 17 3 cf Ljava/util/concurrent/CompletableFuture<+Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
15 17 4 res Ljava/util/concurrent/CompletableFuture<+Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
Exception table:
from to target type
10 11 12 any
12 13 12 any
Signature: (Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture<+Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
MethodParameters:
Name Flags
connection
public java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> responseAsync();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual jdk.internal.net.http.Exchange.responseAsyncImpl:(Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> responseAsyncImpl(jdk.internal.net.http.HttpConnection);
descriptor: (Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.internal.net.http.Exchange.checkPermissions:()Ljava/lang/SecurityException;
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
3: StackMap locals: java.lang.SecurityException
StackMap stack:
aload 0
aload 1
invokevirtual jdk.internal.net.http.Exchange.responseAsyncImpl0:(Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 4 1 connection Ljdk/internal/net/http/HttpConnection;
1 4 2 e Ljava/lang/SecurityException;
Signature: (Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
connection
private java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> checkFor407(jdk.internal.net.http.ExchangeImpl<T>, java.lang.Throwable, java.util.function.Function<jdk.internal.net.http.ExchangeImpl<T>, java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response>>);
descriptor: (Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic jdk.internal.net.http.common.Utils.getCompletionCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 2
1: aload 2
instanceof jdk.internal.net.http.ProxyAuthenticationRequired
ifeq 13
2: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "checkFor407: ProxyAuthenticationRequired: building synthetic response"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
putfield jdk.internal.net.http.Exchange.bodyIgnored:Ljava/util/concurrent/CompletableFuture;
4: aload 2
checkcast jdk.internal.net.http.ProxyAuthenticationRequired
getfield jdk.internal.net.http.ProxyAuthenticationRequired.proxyResponse:Ljdk/internal/net/http/Response;
astore 4
start local 4 5: aload 1
ifnonnull 6
aconst_null
goto 7
StackMap locals: jdk.internal.net.http.Response
StackMap stack:
6: aload 1
invokevirtual jdk.internal.net.http.ExchangeImpl.connection:()Ljdk/internal/net/http/HttpConnection;
StackMap locals:
StackMap stack: jdk.internal.net.http.HttpConnection
7: astore 5
start local 5 8: new jdk.internal.net.http.Response
dup
aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
aload 0
9: aload 4
getfield jdk.internal.net.http.Response.headers:Ljava/net/http/HttpHeaders;
aload 5
aload 4
getfield jdk.internal.net.http.Response.statusCode:I
10: aload 4
getfield jdk.internal.net.http.Response.version:Ljava/net/http/HttpClient$Version;
iconst_1
11: invokespecial jdk.internal.net.http.Response.<init>:(Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/Exchange;Ljava/net/http/HttpHeaders;Ljdk/internal/net/http/HttpConnection;ILjava/net/http/HttpClient$Version;Z)V
astore 6
start local 6 12: aload 6
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
areturn
end local 6 end local 5 end local 4 13: StackMap locals:
StackMap stack:
aload 2
ifnull 16
14: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 15
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "checkFor407: no response - %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
15: StackMap locals:
StackMap stack:
aload 2
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
16: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 17
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "checkFor407: all clear"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
17: StackMap locals:
StackMap stack:
aload 3
aload 1
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 18 1 ex Ljdk/internal/net/http/ExchangeImpl<TT;>;
0 18 2 t Ljava/lang/Throwable;
0 18 3 andThen Ljava/util/function/Function<Ljdk/internal/net/http/ExchangeImpl<TT;>;Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;>;
5 13 4 proxyResponse Ljdk/internal/net/http/Response;
8 13 5 c Ljdk/internal/net/http/HttpConnection;
12 13 6 syntheticResponse Ljdk/internal/net/http/Response;
Signature: (Ljdk/internal/net/http/ExchangeImpl<TT;>;Ljava/lang/Throwable;Ljava/util/function/Function<Ljdk/internal/net/http/ExchangeImpl<TT;>;Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
ex
t
andThen
private java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> expectContinue(jdk.internal.net.http.ExchangeImpl<T>);
descriptor: (Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.net.http.Exchange.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.expectContinue:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.ExchangeImpl.getResponseAsync:(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
2: aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.lambda$4(Ljdk/internal/net/http/Response;)Ljava/util/concurrent/CompletionStage; (7)
(Ljdk/internal/net/http/Response;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 4 1 ex Ljdk/internal/net/http/ExchangeImpl<TT;>;
Signature: (Ljdk/internal/net/http/ExchangeImpl<TT;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
ex
private java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> sendRequestBody(jdk.internal.net.http.ExchangeImpl<T>);
descriptor: (Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.net.http.Exchange.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.expectContinue:()Z
ifeq 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.Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "sendRequestBody"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual jdk.internal.net.http.ExchangeImpl.sendBodyAsync:()Ljava/util/concurrent/CompletableFuture;
3: aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.lambda$9(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage; (7)
(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
4: astore 2
start local 2 5: aload 0
aload 2
invokevirtual jdk.internal.net.http.Exchange.wrapForUpgrade:(Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
astore 2
6: aload 0
aload 2
invokevirtual jdk.internal.net.http.Exchange.wrapForLog:(Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
astore 2
7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 8 1 ex Ljdk/internal/net/http/ExchangeImpl<TT;>;
5 8 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
Signature: (Ljdk/internal/net/http/ExchangeImpl<TT;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
ex
java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> responseAsyncImpl0(jdk.internal.net.http.HttpConnection);
descriptor: (Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
putfield jdk.internal.net.http.Exchange.bodyIgnored:Ljava/util/concurrent/CompletableFuture;
1: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.expectContinue:()Z
ifeq 6
2: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
ldc "Expect"
ldc "100-Continue"
invokevirtual jdk.internal.net.http.HttpRequestImpl.addSystemHeader:(Ljava/lang/String;Ljava/lang/String;)V
3: ldc "Sending Expect: 100-Continue"
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.expectContinue(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture; (7)
(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
astore 2
start local 2 5: goto 7
end local 2 6: StackMap locals:
StackMap stack:
aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.sendRequestBody(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture; (7)
(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
astore 2
start local 2 7: StackMap locals: java.util.function.Function
StackMap stack:
aload 0
aload 2
invokedynamic apply(Ljdk/internal/net/http/Exchange;Ljava/util/function/Function;)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/Exchange.lambda$12(Ljava/util/function/Function;Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture; (7)
(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
8: astore 5
start local 5 9: aload 0
aload 1
invokevirtual jdk.internal.net.http.Exchange.establishExchange:(Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture;
10: aload 0
aload 5
invokedynamic apply(Ljdk/internal/net/http/Exchange;Ljava/util/function/Function;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
jdk/internal/net/http/Exchange.lambda$14(Ljava/util/function/Function;Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture; (7)
(Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
11: invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
12: areturn
end local 5 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 13 1 connection Ljdk/internal/net/http/HttpConnection;
5 6 2 after407Check Ljava/util/function/Function<Ljdk/internal/net/http/ExchangeImpl<TT;>;Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;>;
7 13 2 after407Check Ljava/util/function/Function<Ljdk/internal/net/http/ExchangeImpl<TT;>;Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;>;
9 13 5 afterExch407Check Ljava/util/function/Function<Ljdk/internal/net/http/ExchangeImpl<TT;>;Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;>;
Signature: (Ljdk/internal/net/http/HttpConnection;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
connection
private java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> wrapForUpgrade(java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response>);
descriptor: (Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Exchange.upgrading:Z
ifeq 2
1: aload 1
aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.lambda$15(Ljdk/internal/net/http/Response;)Ljava/util/concurrent/CompletionStage; (7)
(Ljdk/internal/net/http/Response;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 3 1 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
Signature: (Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
cf
private java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> wrapForLog(java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response>);
descriptor: (Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic jdk.internal.net.http.common.Log.requests:()Z
ifeq 2
1: aload 1
invokedynamic apply()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/Exchange.lambda$16(Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/Response; (6)
(Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/Response;
invokevirtual java.util.concurrent.CompletableFuture.thenApply:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
2: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 3 1 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
Signature: (Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
cf
java.net.http.HttpResponse$BodySubscriber<T> ignoreBody(java.net.http.HttpResponse$ResponseInfo);
descriptor: (Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aconst_null
invokestatic java.net.http.HttpResponse$BodySubscribers.replacing:(Ljava/lang/Object;)Ljava/net/http/HttpResponse$BodySubscriber;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 1 1 hdrs Ljava/net/http/HttpResponse$ResponseInfo;
Signature: (Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
MethodParameters:
Name Flags
hdrs
private java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> checkForUpgradeAsync(jdk.internal.net.http.Response, jdk.internal.net.http.ExchangeImpl<T>);
descriptor: (Ljdk/internal/net/http/Response;Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual jdk.internal.net.http.Response.statusCode:()I
istore 3
start local 3 1: aload 0
getfield jdk.internal.net.http.Exchange.upgrading:Z
ifeq 7
iload 3
bipush 101
if_icmpne 7
2: aload 2
checkcast jdk.internal.net.http.Http1Exchange
astore 4
start local 4 3: aload 0
getfield jdk.internal.net.http.Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Upgrading async %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual jdk.internal.net.http.Http1Exchange.connection:()Ljdk/internal/net/http/HttpConnection;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: int jdk.internal.net.http.Http1Exchange
StackMap stack:
aload 4
aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)Ljava/net/http/HttpResponse$BodyHandler;
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/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
jdk/internal/net/http/Exchange.ignoreBody(Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber; (5)
(Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
iconst_0
aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.Http1Exchange.readBodyAsync:(Ljava/net/http/HttpResponse$BodyHandler;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
5: aload 0
aload 4
invokedynamic apply(Ljdk/internal/net/http/Exchange;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/Exchange.lambda$19(Ljdk/internal/net/http/Http1Exchange;Ljava/lang/Object;)Ljava/util/concurrent/CompletionStage; (7)
(Ljava/lang/Object;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
6: areturn
end local 4 7: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 8 1 resp Ljdk/internal/net/http/Response;
0 8 2 ex Ljdk/internal/net/http/ExchangeImpl<TT;>;
1 8 3 rcode I
3 7 4 e Ljdk/internal/net/http/Http1Exchange<TT;>;
Signature: (Ljdk/internal/net/http/Response;Ljdk/internal/net/http/ExchangeImpl<TT;>;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
resp
ex
private java.net.URI getURIForSecurityCheck();
descriptor: ()Ljava/net/URI;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=6, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.method:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.authority:()Ljava/net/InetSocketAddress;
astore 3
start local 3 2: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.uri:()Ljava/net/URI;
astore 4
start local 4 3: aload 2
ldc "CONNECT"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 15
4: new java.net.URI
dup
ldc "socket"
5: aconst_null
6: aload 3
invokevirtual java.net.InetSocketAddress.getHostString:()Ljava/lang/String;
7: aload 3
invokevirtual java.net.InetSocketAddress.getPort:()I
8: aconst_null
9: aconst_null
10: aconst_null
11: invokespecial java.net.URI.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
astore 1
start local 1 12: goto 16
end local 1 StackMap locals: jdk.internal.net.http.Exchange top java.lang.String java.net.InetSocketAddress java.net.URI
StackMap stack: java.net.URISyntaxException
13: astore 5
start local 5 14: new java.lang.InternalError
dup
aload 5
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 15: StackMap locals:
StackMap stack:
aload 4
astore 1
start local 1 16: StackMap locals: jdk.internal.net.http.Exchange java.net.URI java.lang.String java.net.InetSocketAddress java.net.URI
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/Exchange<TT;>;
12 13 1 u Ljava/net/URI;
16 17 1 u Ljava/net/URI;
1 17 2 method Ljava/lang/String;
2 17 3 authority Ljava/net/InetSocketAddress;
3 17 4 uri Ljava/net/URI;
14 15 5 e Ljava/net/URISyntaxException;
Exception table:
from to target type
4 12 13 Class java.net.URISyntaxException
private static java.net.URLPermission permissionForServer(java.net.URI, java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>);
descriptor: (Ljava/net/URI;Ljava/lang/String;Ljava/util/Map;)Ljava/net/URLPermission;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc "CONNECT"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: new java.net.URLPermission
dup
aload 0
invokevirtual java.net.URI.toString:()Ljava/lang/String;
ldc "CONNECT"
invokespecial java.net.URLPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokestatic jdk.internal.net.http.common.Utils.permissionForServer:(Ljava/net/URI;Ljava/lang/String;Ljava/util/stream/Stream;)Ljava/net/URLPermission;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 uri Ljava/net/URI;
0 3 1 method Ljava/lang/String;
0 3 2 headers Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
Signature: (Ljava/net/URI;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;)Ljava/net/URLPermission;
MethodParameters:
Name Flags
uri
method
headers
private java.lang.SecurityException checkPermissions();
descriptor: ()Ljava/lang/SecurityException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.method:()Ljava/lang/String;
astore 1
start local 1 1: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 2: aload 2
ifnull 3
aload 1
ldc "CONNECT"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: StackMap locals: java.lang.String java.lang.SecurityManager
StackMap stack:
aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.getUserHeaders:()Ljava/net/http/HttpHeaders;
astore 3
start local 3 5: aload 0
invokevirtual jdk.internal.net.http.Exchange.getURIForSecurityCheck:()Ljava/net/URI;
astore 4
start local 4 6: aload 4
aload 1
aload 3
invokevirtual java.net.http.HttpHeaders.map:()Ljava/util/Map;
invokestatic jdk.internal.net.http.Exchange.permissionForServer:(Ljava/net/URI;Ljava/lang/String;Ljava/util/Map;)Ljava/net/URLPermission;
astore 5
start local 5 7: getstatic jdk.internal.net.http.Exchange.$assertionsDisabled:Z
ifne 8
aload 0
getfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
ifnonnull 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: java.net.http.HttpHeaders java.net.URI java.net.URLPermission
StackMap stack:
aload 2
aload 5
aload 0
getfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
9: goto 12
StackMap locals:
StackMap stack: java.lang.SecurityException
10: astore 6
start local 6 11: aload 6
areturn
end local 6 12: StackMap locals:
StackMap stack:
aload 3
ldc "Host"
invokevirtual java.net.http.HttpHeaders.firstValue:(Ljava/lang/String;)Ljava/util/Optional;
aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 13: aload 6
ifnull 21
aload 6
aload 4
invokevirtual java.net.URI.getHost:()Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 21
14: aload 4
aload 6
invokestatic jdk.internal.net.http.Exchange.replaceHostInURI:(Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;
astore 7
start local 7 15: aload 7
aload 1
aload 3
invokevirtual java.net.http.HttpHeaders.map:()Ljava/util/Map;
invokestatic jdk.internal.net.http.Exchange.permissionForServer:(Ljava/net/URI;Ljava/lang/String;Ljava/util/Map;)Ljava/net/URLPermission;
astore 8
start local 8 16: getstatic jdk.internal.net.http.Exchange.$assertionsDisabled:Z
ifne 17
aload 0
getfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
ifnonnull 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals: java.lang.String java.net.URI java.net.URLPermission
StackMap stack:
aload 2
aload 8
aload 0
getfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
18: goto 21
StackMap locals:
StackMap stack: java.lang.SecurityException
19: astore 9
start local 9 20: aload 9
areturn
end local 9 end local 8 end local 7 21: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.proxySelector:()Ljava/net/ProxySelector;
astore 7
start local 7 22: aload 7
ifnull 30
23: aload 1
ldc "CONNECT"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
24: aload 0
getfield jdk.internal.net.http.Exchange.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.proxy:()Ljava/net/InetSocketAddress;
invokestatic jdk.internal.net.http.common.Utils.permissionForProxy:(Ljava/net/InetSocketAddress;)Ljava/net/URLPermission;
astore 8
start local 8 25: aload 8
ifnull 30
26: aload 2
aload 8
aload 0
getfield jdk.internal.net.http.Exchange.acc:Ljava/security/AccessControlContext;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;Ljava/lang/Object;)V
27: goto 30
StackMap locals: jdk.internal.net.http.Exchange java.lang.String java.lang.SecurityManager java.net.http.HttpHeaders java.net.URI java.net.URLPermission java.lang.String java.net.ProxySelector java.net.URLPermission
StackMap stack: java.lang.SecurityException
28: astore 9
start local 9 29: aload 9
areturn
end local 9 end local 8 30: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljdk/internal/net/http/Exchange<TT;>;
1 31 1 method Ljava/lang/String;
2 31 2 sm Ljava/lang/SecurityManager;
5 31 3 userHeaders Ljava/net/http/HttpHeaders;
6 31 4 u Ljava/net/URI;
7 31 5 p Ljava/net/URLPermission;
11 12 6 e Ljava/lang/SecurityException;
13 31 6 hostHeader Ljava/lang/String;
15 21 7 u1 Ljava/net/URI;
16 21 8 p1 Ljava/net/URLPermission;
20 21 9 e Ljava/lang/SecurityException;
22 31 7 ps Ljava/net/ProxySelector;
25 30 8 proxyPerm Ljava/net/URLPermission;
29 30 9 e Ljava/lang/SecurityException;
Exception table:
from to target type
7 9 10 Class java.lang.SecurityException
16 18 19 Class java.lang.SecurityException
26 27 28 Class java.lang.SecurityException
private static java.net.URI replaceHostInURI(java.net.URI, java.lang.String);
descriptor: (Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 2
aload 0
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "://"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: aload 0
invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 u Ljava/net/URI;
0 6 1 hostPort Ljava/lang/String;
1 6 2 sb Ljava/lang/StringBuilder;
MethodParameters:
Name Flags
u
hostPort
java.net.http.HttpClient$Version version();
descriptor: ()Ljava/net/http/HttpClient$Version;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.multi:Ljdk/internal/net/http/MultiExchange;
invokevirtual jdk.internal.net.http.MultiExchange.version:()Ljava/net/http/HttpClient$Version;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
java.lang.String dbgString();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Exchange.dbgTag:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
private void lambda$1(java.lang.Object, java.lang.Throwable);
descriptor: (Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
invokevirtual jdk.internal.net.http.ExchangeImpl.completed:()V
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 1 1 r TT;
0 1 2 t Ljava/lang/Throwable;
private void lambda$2(java.util.concurrent.CompletableFuture, jdk.internal.net.http.ExchangeImpl, java.lang.Throwable);
descriptor: (Ljava/util/concurrent/CompletableFuture;Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=5, args_size=4
start local 0 start local 2 start local 3 0: aload 0
dup
astore 4
monitorenter
1: aload 0
getfield jdk.internal.net.http.Exchange.exchangeCF:Ljava/util/concurrent/CompletableFuture;
aload 1
if_acmpne 2
aload 0
aconst_null
putfield jdk.internal.net.http.Exchange.exchangeCF:Ljava/util/concurrent/CompletableFuture;
2: StackMap locals: jdk.internal.net.http.Exchange
StackMap stack:
aload 4
monitorexit
3: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
4: aload 4
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 7 2 r Ljdk/internal/net/http/ExchangeImpl<TT;>;
0 7 3 x Ljava/lang/Throwable;
Exception table:
from to target type
1 3 4 any
4 5 4 any
private java.util.concurrent.CompletionStage lambda$3(jdk.internal.net.http.ExchangeImpl);
descriptor: (Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
1: aload 0
invokevirtual jdk.internal.net.http.Exchange.getCancelCause:()Ljava/io/IOException;
astore 2
start local 2 2: aload 0
invokevirtual jdk.internal.net.http.Exchange.checkCancelled:()V
3: aload 2
ifnull 5
4: aload 2
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
5: StackMap locals: java.io.IOException
StackMap stack:
aload 1
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 6 1 eimpl Ljdk/internal/net/http/ExchangeImpl<TT;>;
2 6 2 tt Ljava/io/IOException;
private java.util.concurrent.CompletionStage lambda$4(jdk.internal.net.http.Response);
descriptor: (Ljdk/internal/net/http/Response;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Ljdk/internal/net/http/Response;)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/Response.toString()Ljava/lang/String; (5)
()Ljava/lang/String;
invokestatic jdk.internal.net.http.common.Log.logResponse:(Ljava/util/function/Supplier;)V
1: aload 1
invokevirtual jdk.internal.net.http.Response.statusCode:()I
istore 3
start local 3 2: iload 3
bipush 100
if_icmpne 11
3: ldc "Received 100-Continue: sending body"
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 0
getfield jdk.internal.net.http.Exchange.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.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Received 100-Continue for %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.Response top int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
invokevirtual jdk.internal.net.http.ExchangeImpl.sendBodyAsync:()Ljava/util/concurrent/CompletableFuture;
6: aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)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/Exchange.lambda$6(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage; (7)
(Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
7: astore 4
start local 4 8: aload 0
aload 4
invokevirtual jdk.internal.net.http.Exchange.wrapForUpgrade:(Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
astore 4
9: aload 0
aload 4
invokevirtual jdk.internal.net.http.Exchange.wrapForLog:(Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
astore 4
10: aload 4
areturn
end local 4 11: StackMap locals:
StackMap stack:
ldc "Expectation failed: Received {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
12: iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
13: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
14: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 15
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Expect-Continue failed (%d) for: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.upgrading:Z
ifeq 20
iload 3
bipush 101
if_icmpne 20
16: new java.io.IOException
dup
17: ldc "Unable to handle 101 while waiting for 100"
18: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 19: aload 4
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 4 20: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
aload 0
invokedynamic apply(Ljdk/internal/net/http/Exchange;)Ljava/net/http/HttpResponse$BodyHandler;
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/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
jdk/internal/net/http/Exchange.ignoreBody(Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber; (5)
(Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
iconst_0
aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.ExchangeImpl.readBodyAsync:(Ljava/net/http/HttpResponse$BodyHandler;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
21: aload 1
invokedynamic apply(Ljdk/internal/net/http/Response;)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/Exchange.lambda$8(Ljdk/internal/net/http/Response;Ljava/lang/Object;)Ljdk/internal/net/http/Response; (6)
(Ljava/lang/Object;)Ljdk/internal/net/http/Response;
invokevirtual java.util.concurrent.CompletableFuture.thenApply:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
22: areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 23 1 r1 Ljdk/internal/net/http/Response;
2 23 3 rcode I
8 11 4 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
19 20 4 failed Ljava/io/IOException;
private java.util.concurrent.CompletionStage lambda$9(jdk.internal.net.http.ExchangeImpl);
descriptor: (Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.ExchangeImpl.getResponseAsync:(Ljava/util/concurrent/Executor;)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/Exchange<TT;>;
0 1 1 exIm Ljdk/internal/net/http/ExchangeImpl<TT;>;
private java.util.concurrent.CompletableFuture lambda$12(java.util.function.Function, jdk.internal.net.http.ExchangeImpl);
descriptor: (Ljava/util/function/Function;Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletableFuture;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 2
invokevirtual jdk.internal.net.http.ExchangeImpl.sendHeadersAsync:()Ljava/util/concurrent/CompletableFuture;
1: aload 0
aload 1
invokedynamic apply(Ljdk/internal/net/http/Exchange;Ljava/util/function/Function;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
jdk/internal/net/http/Exchange.lambda$13(Ljava/util/function/Function;Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture; (7)
(Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
2: invokestatic java.util.function.Function.identity:()Ljava/util/function/Function;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 3 2 ex Ljdk/internal/net/http/ExchangeImpl<TT;>;
private java.util.concurrent.CompletableFuture lambda$14(java.util.function.Function, jdk.internal.net.http.ExchangeImpl, java.lang.Throwable);
descriptor: (Ljava/util/function/Function;Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 2
aload 3
aload 1
invokevirtual jdk.internal.net.http.Exchange.checkFor407:(Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 1 2 r Ljdk/internal/net/http/ExchangeImpl<TT;>;
0 1 3 t Ljava/lang/Throwable;
private java.util.concurrent.CompletionStage lambda$15(jdk.internal.net.http.Response);
descriptor: (Ljdk/internal/net/http/Response;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
invokevirtual jdk.internal.net.http.Exchange.checkForUpgradeAsync:(Ljdk/internal/net/http/Response;Ljdk/internal/net/http/ExchangeImpl;)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/Exchange<TT;>;
0 1 1 r Ljdk/internal/net/http/Response;
private static jdk.internal.net.http.Response lambda$16(jdk.internal.net.http.Response);
descriptor: (Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/Response;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Ljdk/internal/net/http/Response;)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/Response.toString()Ljava/lang/String; (5)
()Ljava/lang/String;
invokestatic jdk.internal.net.http.common.Log.logResponse:(Ljava/util/function/Supplier;)V
1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 response Ljdk/internal/net/http/Response;
private java.util.concurrent.CompletionStage lambda$19(jdk.internal.net.http.Http1Exchange, java.lang.Object);
descriptor: (Ljdk/internal/net/http/Http1Exchange;Ljava/lang/Object;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 2 0: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Ignored body"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: aload 1
invokevirtual jdk.internal.net.http.Http1Exchange.connection:()Ljdk/internal/net/http/HttpConnection;
2: aload 0
getfield jdk.internal.net.http.Exchange.client:Ljdk/internal/net/http/HttpClientImpl;
invokevirtual jdk.internal.net.http.HttpClientImpl.client2:()Ljdk/internal/net/http/Http2ClientImpl;
3: aload 0
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
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.drainLeftOverBytes()Ljava/nio/ByteBuffer; (5)
()Ljava/nio/ByteBuffer;
4: invokestatic jdk.internal.net.http.Http2Connection.createAsync:(Ljdk/internal/net/http/HttpConnection;Ljdk/internal/net/http/Http2ClientImpl;Ljdk/internal/net/http/Exchange;Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
5: aload 0
aload 1
invokedynamic apply(Ljdk/internal/net/http/Exchange;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/Exchange.lambda$21(Ljdk/internal/net/http/Http1Exchange;Ljdk/internal/net/http/Http2Connection;)Ljava/util/concurrent/CompletionStage; (7)
(Ljdk/internal/net/http/Http2Connection;)Ljava/util/concurrent/CompletionStage;
invokevirtual java.util.concurrent.CompletableFuture.thenCompose:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
6: areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 7 2 v TT;
private java.util.concurrent.CompletionStage lambda$6(jdk.internal.net.http.ExchangeImpl);
descriptor: (Ljdk/internal/net/http/ExchangeImpl;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield jdk.internal.net.http.Exchange.parentExecutor:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.ExchangeImpl.getResponseAsync:(Ljava/util/concurrent/Executor;)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/Exchange<TT;>;
0 1 1 exIm Ljdk/internal/net/http/ExchangeImpl<TT;>;
private static jdk.internal.net.http.Response lambda$8(jdk.internal.net.http.Response, java.lang.Object);
descriptor: (Ljdk/internal/net/http/Response;Ljava/lang/Object;)Ljdk/internal/net/http/Response;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 1 0: aload 0
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 v TT;
private java.util.concurrent.CompletableFuture lambda$13(java.util.function.Function, jdk.internal.net.http.ExchangeImpl, java.lang.Throwable);
descriptor: (Ljava/util/function/Function;Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 2
aload 3
aload 1
invokevirtual jdk.internal.net.http.Exchange.checkFor407:(Ljdk/internal/net/http/ExchangeImpl;Ljava/lang/Throwable;Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 1 2 r Ljdk/internal/net/http/ExchangeImpl<TT;>;
0 1 3 t Ljava/lang/Throwable;
private java.util.concurrent.CompletionStage lambda$21(jdk.internal.net.http.Http1Exchange, jdk.internal.net.http.Http2Connection);
descriptor: (Ljdk/internal/net/http/Http1Exchange;Ljdk/internal/net/http/Http2Connection;)Ljava/util/concurrent/CompletionStage;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 2 0: aload 2
invokevirtual jdk.internal.net.http.Http2Connection.offerConnection:()Z
istore 3
start local 3 1: aload 2
iconst_1
invokevirtual jdk.internal.net.http.Http2Connection.getStream:(I)Ljdk/internal/net/http/Stream;
astore 4
start local 4 2: aload 4
ifnonnull 11
3: aload 2
invokevirtual jdk.internal.net.http.Http2Connection.getRecordedCause:()Ljava/lang/Throwable;
astore 5
start local 5 4: aload 5
ifnull 9
5: iload 3
ifne 7
6: aload 2
invokevirtual jdk.internal.net.http.Http2Connection.close:()V
7: StackMap locals: int jdk.internal.net.http.Stream java.lang.Throwable
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Can't get stream 1: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
astore 6
start local 6 8: goto 10
end local 6 9: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Can't get stream 1"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 10: StackMap locals: java.io.IOException
StackMap stack:
aload 6
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 6 end local 5 11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
invokevirtual jdk.internal.net.http.ExchangeImpl.released:()V
12: aload 0
dup
astore 6
monitorenter
13: aload 0
aload 4
putfield jdk.internal.net.http.Exchange.exchImpl:Ljdk/internal/net/http/ExchangeImpl;
14: aload 0
getfield jdk.internal.net.http.Exchange.failed:Ljava/io/IOException;
astore 5
start local 5 15: aload 6
monitorexit
16: goto 19
end local 5 StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.Http1Exchange jdk.internal.net.http.Http2Connection int jdk.internal.net.http.Stream top jdk.internal.net.http.Exchange
StackMap stack: java.lang.Throwable
17: aload 6
monitorexit
18: athrow
start local 5 19: StackMap locals: jdk.internal.net.http.Exchange jdk.internal.net.http.Http1Exchange jdk.internal.net.http.Http2Connection int jdk.internal.net.http.Stream java.lang.Throwable
StackMap stack:
aload 5
ifnonnull 20
aload 1
invokevirtual jdk.internal.net.http.Http1Exchange.getCancelCause:()Ljava/lang/Throwable;
astore 5
20: StackMap locals:
StackMap stack:
aload 5
instanceof java.net.http.HttpTimeoutException
ifeq 23
21: aload 4
aload 5
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
22: aload 5
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
23: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 25
24: aload 0
getfield jdk.internal.net.http.Exchange.debug:Ljdk/internal/net/http/common/Logger;
ldc "Getting response async %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
25: StackMap locals:
StackMap stack:
aload 4
aconst_null
invokevirtual jdk.internal.net.http.Stream.getResponseAsync:(Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljdk/internal/net/http/Exchange<TT;>;
0 26 2 c Ljdk/internal/net/http/Http2Connection;
1 26 3 cached Z
2 26 4 s Ljdk/internal/net/http/Stream<TT;>;
4 11 5 t Ljava/lang/Throwable;
8 9 6 ioe Ljava/io/IOException;
10 11 6 ioe Ljava/io/IOException;
15 17 5 t Ljava/lang/Throwable;
19 26 5 t Ljava/lang/Throwable;
Exception table:
from to target type
13 16 17 any
17 18 17 any
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "Exchange.java"
NestMembers:
jdk.internal.net.http.Exchange$ConnectionAborter
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 BodySubscribers = java.net.http.HttpResponse$BodySubscribers of java.net.http.HttpResponse
public abstract ResponseInfo = java.net.http.HttpResponse$ResponseInfo of java.net.http.HttpResponse
final ConnectionAborter = jdk.internal.net.http.Exchange$ConnectionAborter of jdk.internal.net.http.Exchange