public class jdk.internal.net.http.common.SSLFlowDelegate
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.net.http.common.SSLFlowDelegate
super_class: java.lang.Object
{
final jdk.internal.net.http.common.Logger debug;
descriptor: Ljdk/internal/net/http/common/Logger;
flags: (0x0010) ACC_FINAL
private static final java.nio.ByteBuffer SENTINEL;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.nio.ByteBuffer HS_TRIGGER;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.nio.ByteBuffer NOTHING;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String monProp;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean isMonitored;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final java.util.concurrent.Executor exec;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.common.SSLFlowDelegate$Reader reader;
descriptor: Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.common.SSLFlowDelegate$Writer writer;
descriptor: Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
flags: (0x0010) ACC_FINAL
final javax.net.ssl.SSLEngine engine;
descriptor: Ljavax/net/ssl/SSLEngine;
flags: (0x0010) ACC_FINAL
final java.lang.String tubeName;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.CompletableFuture<java.lang.String> alpnCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/String;>;
final jdk.internal.net.http.common.SSLFlowDelegate$Monitorable monitor;
descriptor: Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;
flags: (0x0010) ACC_FINAL
volatile boolean close_notify_received;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final java.util.concurrent.CompletableFuture<java.lang.Void> readerCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
final java.util.concurrent.CompletableFuture<java.lang.Void> writerCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
final java.util.concurrent.CompletableFuture<java.lang.Void> stopCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
final java.util.function.Consumer<java.nio.ByteBuffer> recycler;
descriptor: Ljava/util/function/Consumer;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Consumer<Ljava/nio/ByteBuffer;>;
static java.util.concurrent.atomic.AtomicInteger scount;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0008) ACC_STATIC
final int id;
descriptor: I
flags: (0x0010) ACC_FINAL
boolean stopped;
descriptor: Z
flags: (0x0000)
private static final int NOT_HANDSHAKING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int HANDSHAKING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int DOING_TASKS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int REQUESTING_TASKS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int TASK_BITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int READER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int WRITER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
final java.util.concurrent.atomic.AtomicInteger handshakeState;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.ConcurrentLinkedQueue<java.lang.String> stateList;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Ljava/lang/String;>;
private static final java.util.function.IntBinaryOperator REQUEST_OR_DO_TASKS;
descriptor: Ljava/util/function/IntBinaryOperator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.function.IntBinaryOperator FINISH_OR_DO_TASKS;
descriptor: Ljava/util/function/IntBinaryOperator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
volatile int packetBufferSize;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile int applicationBufferSize;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile int adaptiveAppBufferSize;
descriptor: I
flags: (0x0040) ACC_VOLATILE
private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic jdk.internal.net.http.common.Utils.EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer;
putstatic jdk.internal.net.http.common.SSLFlowDelegate.SENTINEL:Ljava/nio/ByteBuffer;
1: iconst_0
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putstatic jdk.internal.net.http.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
2: iconst_0
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putstatic jdk.internal.net.http.common.SSLFlowDelegate.NOTHING:Ljava/nio/ByteBuffer;
3: ldc "jdk.internal.httpclient.monitorFlowDelegate"
invokestatic jdk.internal.net.http.common.Utils.getProperty:(Ljava/lang/String;)Ljava/lang/String;
putstatic jdk.internal.net.http.common.SSLFlowDelegate.monProp:Ljava/lang/String;
4: getstatic jdk.internal.net.http.common.SSLFlowDelegate.monProp:Ljava/lang/String;
ifnull 6
getstatic jdk.internal.net.http.common.SSLFlowDelegate.monProp:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 5
getstatic jdk.internal.net.http.common.SSLFlowDelegate.monProp:Ljava/lang/String;
ldc "true"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 6
5: StackMap locals:
StackMap stack:
iconst_1
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: putstatic jdk.internal.net.http.common.SSLFlowDelegate.isMonitored:Z
8: new java.util.concurrent.atomic.AtomicInteger
dup
iconst_1
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putstatic jdk.internal.net.http.common.SSLFlowDelegate.scount:Ljava/util/concurrent/atomic/AtomicInteger;
9: invokedynamic applyAsInt()Ljava/util/function/IntBinaryOperator;
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:
(II)I
jdk/internal/net/http/common/SSLFlowDelegate.lambda$2(II)I (6)
(II)I
putstatic jdk.internal.net.http.common.SSLFlowDelegate.REQUEST_OR_DO_TASKS:Ljava/util/function/IntBinaryOperator;
10: invokedynamic applyAsInt()Ljava/util/function/IntBinaryOperator;
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:
(II)I
jdk/internal/net/http/common/SSLFlowDelegate.lambda$3(II)I (6)
(II)I
putstatic jdk.internal.net.http.common.SSLFlowDelegate.FINISH_OR_DO_TASKS:Ljava/util/function/IntBinaryOperator;
11: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(javax.net.ssl.SSLEngine, java.util.concurrent.Executor, java.util.concurrent.Flow$Subscriber<? super java.util.List<java.nio.ByteBuffer>>, java.util.concurrent.Flow$Subscriber<? super java.util.List<java.nio.ByteBuffer>>);
descriptor: (Ljavax/net/ssl/SSLEngine;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Flow$Subscriber;Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aconst_null
aload 3
aload 4
invokespecial jdk.internal.net.http.common.SSLFlowDelegate.<init>:(Ljavax/net/ssl/SSLEngine;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;Ljava/util/concurrent/Flow$Subscriber;Ljava/util/concurrent/Flow$Subscriber;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 2 1 engine Ljavax/net/ssl/SSLEngine;
0 2 2 exec Ljava/util/concurrent/Executor;
0 2 3 downReader Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
0 2 4 downWriter Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
Signature: (Ljavax/net/ssl/SSLEngine;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;)V
MethodParameters:
Name Flags
engine
exec
downReader
downWriter
public void <init>(javax.net.ssl.SSLEngine, java.util.concurrent.Executor, java.util.function.Consumer<java.nio.ByteBuffer>, java.util.concurrent.Flow$Subscriber<? super java.util.List<java.nio.ByteBuffer>>, java.util.concurrent.Flow$Subscriber<? super java.util.List<java.nio.ByteBuffer>>);
descriptor: (Ljavax/net/ssl/SSLEngine;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer;Ljava/util/concurrent/Flow$Subscriber;Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: aload 0
invokedynamic get(Ljdk/internal/net/http/common/SSLFlowDelegate;)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/common/SSLFlowDelegate.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.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
3: aload 0
getstatic jdk.internal.net.http.common.SSLFlowDelegate.isMonitored:Z
ifeq 4
aload 0
invokedynamic getInfo(Ljdk/internal/net/http/common/SSLFlowDelegate;)Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;
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/String;
jdk/internal/net/http/common/SSLFlowDelegate.monitor()Ljava/lang/String; (5)
()Ljava/lang/String;
goto 5
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate javax.net.ssl.SSLEngine java.util.concurrent.Executor java.util.function.Consumer java.util.concurrent.Flow$Subscriber java.util.concurrent.Flow$Subscriber
StackMap stack: jdk.internal.net.http.common.SSLFlowDelegate
4: aconst_null
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate javax.net.ssl.SSLEngine java.util.concurrent.Executor java.util.function.Consumer java.util.concurrent.Flow$Subscriber java.util.concurrent.Flow$Subscriber
StackMap stack: jdk.internal.net.http.common.SSLFlowDelegate jdk.internal.net.http.common.SSLFlowDelegate$Monitorable
5: putfield jdk.internal.net.http.common.SSLFlowDelegate.monitor:Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;
6: aload 0
7: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 8
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
goto 9
StackMap locals:
StackMap stack: jdk.internal.net.http.common.SSLFlowDelegate
8: aconst_null
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate javax.net.ssl.SSLEngine java.util.concurrent.Executor java.util.function.Consumer java.util.concurrent.Flow$Subscriber java.util.concurrent.Flow$Subscriber
StackMap stack: jdk.internal.net.http.common.SSLFlowDelegate java.util.concurrent.ConcurrentLinkedQueue
9: putfield jdk.internal.net.http.common.SSLFlowDelegate.stateList:Ljava/util/concurrent/ConcurrentLinkedQueue;
10: aload 0
getstatic jdk.internal.net.http.common.SSLFlowDelegate.scount:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
putfield jdk.internal.net.http.common.SSLFlowDelegate.id:I
11: aload 0
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
putfield jdk.internal.net.http.common.SSLFlowDelegate.tubeName:Ljava/lang/String;
12: aload 0
aload 3
putfield jdk.internal.net.http.common.SSLFlowDelegate.recycler:Ljava/util/function/Consumer;
13: aload 0
new jdk.internal.net.http.common.SSLFlowDelegate$Reader
dup
aload 0
invokespecial jdk.internal.net.http.common.SSLFlowDelegate$Reader.<init>:(Ljdk/internal/net/http/common/SSLFlowDelegate;)V
putfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
14: aload 0
new jdk.internal.net.http.common.SSLFlowDelegate$Writer
dup
aload 0
invokespecial jdk.internal.net.http.common.SSLFlowDelegate$Writer.<init>:(Ljdk/internal/net/http/common/SSLFlowDelegate;)V
putfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
15: aload 0
aload 1
putfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
16: aload 0
aload 2
putfield jdk.internal.net.http.common.SSLFlowDelegate.exec:Ljava/util/concurrent/Executor;
17: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
putfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
18: aload 0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.completion:()Ljava/util/concurrent/CompletableFuture;
putfield jdk.internal.net.http.common.SSLFlowDelegate.readerCF:Ljava/util/concurrent/CompletableFuture;
19: aload 0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.completion:()Ljava/util/concurrent/CompletableFuture;
putfield jdk.internal.net.http.common.SSLFlowDelegate.writerCF:Ljava/util/concurrent/CompletableFuture;
20: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.readerCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic apply(Ljdk/internal/net/http/common/SSLFlowDelegate;)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/common/SSLFlowDelegate.stopOnError(Ljava/lang/Throwable;)Ljava/lang/Void; (7)
(Ljava/lang/Throwable;)Ljava/lang/Void;
invokevirtual java.util.concurrent.CompletableFuture.exceptionally:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
pop
21: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writerCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic apply(Ljdk/internal/net/http/common/SSLFlowDelegate;)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/common/SSLFlowDelegate.stopOnError(Ljava/lang/Throwable;)Ljava/lang/Void; (7)
(Ljava/lang/Throwable;)Ljava/lang/Void;
invokevirtual java.util.concurrent.CompletableFuture.exceptionally:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
pop
22: aload 0
iconst_2
anewarray java.util.concurrent.CompletableFuture
dup
iconst_0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.completion:()Ljava/util/concurrent/CompletableFuture;
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.completion:()Ljava/util/concurrent/CompletableFuture;
aastore
invokestatic java.util.concurrent.CompletableFuture.allOf:([Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
23: aload 0
invokedynamic run(Ljdk/internal/net/http/common/SSLFlowDelegate;)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/common/SSLFlowDelegate.normalStop()V (7)
()V
invokevirtual java.util.concurrent.CompletableFuture.thenRun:(Ljava/lang/Runnable;)Ljava/util/concurrent/CompletableFuture;
24: putfield jdk.internal.net.http.common.SSLFlowDelegate.stopCF:Ljava/util/concurrent/CompletableFuture;
25: aload 0
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
putfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
26: aload 0
aload 4
aload 5
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.connect:(Ljava/util/concurrent/Flow$Subscriber;Ljava/util/concurrent/Flow$Subscriber;)V
27: getstatic jdk.internal.net.http.common.SSLFlowDelegate.isMonitored:Z
ifeq 28
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.monitor:Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;
invokestatic jdk.internal.net.http.common.SSLFlowDelegate$Monitor.add:(Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;)V
28: StackMap locals:
StackMap stack:
return
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 29 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 29 1 engine Ljavax/net/ssl/SSLEngine;
0 29 2 exec Ljava/util/concurrent/Executor;
0 29 3 recycler Ljava/util/function/Consumer<Ljava/nio/ByteBuffer;>;
0 29 4 downReader Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
0 29 5 downWriter Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
Signature: (Ljavax/net/ssl/SSLEngine;Ljava/util/concurrent/Executor;Ljava/util/function/Consumer<Ljava/nio/ByteBuffer;>;Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;)V
MethodParameters:
Name Flags
engine
exec
recycler
downReader
downWriter
public boolean closeNotifyReceived();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.close_notify_received:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
void connect(java.util.concurrent.Flow$Subscriber<? super java.util.List<java.nio.ByteBuffer>>, java.util.concurrent.Flow$Subscriber<? super java.util.List<java.nio.ByteBuffer>>);
descriptor: (Ljava/util/concurrent/Flow$Subscriber;Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.subscribe:(Ljava/util/concurrent/Flow$Subscriber;)V
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
aload 2
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.subscribe:(Ljava/util/concurrent/Flow$Subscriber;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 3 1 downReader Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
0 3 2 downWriter Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
Signature: (Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;Ljava/util/concurrent/Flow$Subscriber<-Ljava/util/List<Ljava/nio/ByteBuffer;>;>;)V
MethodParameters:
Name Flags
downReader
downWriter
public java.util.concurrent.CompletableFuture<java.lang.String> alpn();
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.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/String;>;
private void setALPN();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getApplicationProtocol:()Ljava/lang/String;
astore 1
start local 1 3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.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.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "setALPN = %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
4: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
3 6 1 alpn Ljava/lang/String;
public java.lang.String monitor();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "SSL: id "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.id:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
2: aload 1
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.dbgString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
new java.lang.StringBuilder
dup
ldc " HS state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
invokestatic jdk.internal.net.http.common.SSLFlowDelegate.states:(Ljava/util/concurrent/atomic/AtomicInteger;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: aload 1
new java.lang.StringBuilder
dup
ldc " Engine state: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.stateList:Ljava/util/concurrent/ConcurrentLinkedQueue;
ifnull 11
6: aload 1
ldc " LL : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.stateList:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate java.lang.StringBuilder top java.util.Iterator
StackMap stack:
8: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 9: aload 1
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 10: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate java.lang.StringBuilder
StackMap stack:
aload 1
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 1
ldc "Reader:: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 1
ldc "\r\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: aload 1
ldc "Writer:: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
15: aload 1
ldc "\r\n==================================="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
1 17 1 sb Ljava/lang/StringBuilder;
9 10 2 s Ljava/lang/String;
protected jdk.internal.net.http.common.SubscriberWrapper$SchedulingAction enterReadScheduling();
descriptor: ()Ljdk/internal/net/http/common/SubscriberWrapper$SchedulingAction;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.net.http.common.SubscriberWrapper$SchedulingAction.CONTINUE:Ljdk/internal/net/http/common/SubscriberWrapper$SchedulingAction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
private void handleError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)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.common.SSLFlowDelegate.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.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "handleError"
aload 1
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;Ljava/lang/Throwable;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.readerCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writerCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
4: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.stop:()V
5: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.stop:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 7 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
private synchronized void normalStop();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.stopped:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.common.SSLFlowDelegate.stopped:Z
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.stop:()V
4: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.stop:()V
5: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 10
6: new javax.net.ssl.SSLHandshakeException
dup
7: ldc "Connection closed before successful ALPN negotiation"
8: invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
astore 1
start local 1 9: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 1 10: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.common.SSLFlowDelegate.isMonitored:Z
ifeq 11
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.monitor:Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;
invokestatic jdk.internal.net.http.common.SSLFlowDelegate$Monitor.remove:(Ljdk/internal/net/http/common/SSLFlowDelegate$Monitorable;)V
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
9 10 1 alpn Ljava/lang/Throwable;
private java.lang.Void stopOnError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/lang/Void;
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.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 2
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.alpnCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.normalStop:()V
3: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 4 1 error Ljava/lang/Throwable;
MethodParameters:
Name Flags
error
private void cleanList(java.util.List<java.nio.ByteBuffer>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
dup
astore 2
monitorenter
1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
start local 3 2: goto 6
3: StackMap locals: java.util.List java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 4
start local 4 4: aload 4
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 6
aload 4
getstatic jdk.internal.net.http.common.SSLFlowDelegate.SENTINEL:Ljava/nio/ByteBuffer;
if_acmpeq 6
5: aload 3
invokeinterface java.util.Iterator.remove:()V
end local 4 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 3 7: aload 2
monitorexit
8: goto 11
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate java.util.List java.util.List
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 12 1 l Ljava/util/List<Ljava/nio/ByteBuffer;>;
2 7 3 iter Ljava/util/Iterator<Ljava/nio/ByteBuffer;>;
4 6 4 b Ljava/nio/ByteBuffer;
Exception table:
from to target type
1 8 9 any
9 10 9 any
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;)V
MethodParameters:
Name Flags
l
private static java.lang.String states(java.util.concurrent.atomic.AtomicInteger);
descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
istore 1
start local 1 1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 2: iload 1
bipush -13
iand
istore 3
start local 3 3: iload 3
tableswitch { // 0 - 1
0: 4
1: 6
default: 8
}
4: StackMap locals: int java.lang.StringBuilder int
StackMap stack:
aload 2
ldc " NOT_HANDSHAKING "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: goto 9
6: StackMap locals:
StackMap stack:
aload 2
ldc " HANDSHAKING "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: goto 9
8: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
iload 1
iconst_4
iand
ifle 11
10: aload 2
ldc "|DOING_TASKS"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: StackMap locals:
StackMap stack:
iload 1
bipush 8
iand
ifle 13
12: aload 2
ldc "|REQUESTING_TASKS"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 state Ljava/util/concurrent/atomic/AtomicInteger;
1 14 1 s I
2 14 2 sb Ljava/lang/StringBuilder;
3 14 3 x I
MethodParameters:
Name Flags
state
private void resumeActivity();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.schedule:()V
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.schedule:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
private boolean doHandshake(jdk.internal.net.http.common.SSLFlowDelegate$EngineResult, int);
descriptor: (Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokedynamic applyAsInt()Ljava/util/function/IntBinaryOperator;
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:
(II)I
jdk/internal/net/http/common/SSLFlowDelegate.lambda$7(II)I (6)
(II)I
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndAccumulate:(ILjava/util/function/IntBinaryOperator;)I
pop
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.stateList:Ljava/util/concurrent/ConcurrentLinkedQueue;
ifnull 4
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 4
2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.stateList:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.handshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.toString:()Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.stateList:Ljava/util/concurrent/ConcurrentLinkedQueue;
iload 2
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
4: StackMap locals:
StackMap stack:
invokestatic jdk.internal.net.http.common.SSLFlowDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.handshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iaload
tableswitch { // 3 - 6
3: 5
4: 12
5: 15
6: 15
default: 18
}
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
getstatic jdk.internal.net.http.common.SSLFlowDelegate.REQUEST_OR_DO_TASKS:Ljava/util/function/IntBinaryOperator;
invokevirtual java.util.concurrent.atomic.AtomicInteger.accumulateAndGet:(ILjava/util/function/IntBinaryOperator;)I
istore 3
start local 3 6: iload 3
bipush 8
iand
ifle 8
7: iconst_0
ireturn
8: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 9
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "obtaining and initiating task execution"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.obtainTasks:()Ljava/util/List;
astore 4
start local 4 10: aload 0
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.executeTasks:(Ljava/util/List;)V
11: iconst_0
ireturn
end local 4 end local 3 12: StackMap locals:
StackMap stack:
iload 2
iconst_1
if_icmpne 21
13: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.triggerWrite:()V
14: iconst_0
ireturn
15: StackMap locals:
StackMap stack:
iload 2
iconst_2
if_icmpne 21
16: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.schedule:()V
17: iconst_0
ireturn
18: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected handshake status:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.handshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 22 1 r Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
0 22 2 caller I
6 12 3 s I
10 12 4 tasks Ljava/util/List<Ljava/lang/Runnable;>;
MethodParameters:
Name Flags
r
caller
private java.util.List<java.lang.Runnable> obtainTasks();
descriptor: ()Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: goto 3
start local 2 2: StackMap locals: java.util.List java.lang.Runnable
StackMap stack:
aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
dup
astore 2
start local 2 4: ifnonnull 2
5: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
1 6 1 l Ljava/util/List<Ljava/lang/Runnable;>;
2 3 2 r Ljava/lang/Runnable;
4 6 2 r Ljava/lang/Runnable;
Signature: ()Ljava/util/List<Ljava/lang/Runnable;>;
private void executeTasks(java.util.List<java.lang.Runnable>);
descriptor: (Ljava/util/List;)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.common.SSLFlowDelegate.exec:Ljava/util/concurrent/Executor;
aload 0
aload 1
invokedynamic run(Ljdk/internal/net/http/common/SSLFlowDelegate;Ljava/util/List;)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/common/SSLFlowDelegate.lambda$8(Ljava/util/List;)V (7)
()V
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 2 1 tasks Ljava/util/List<Ljava/lang/Runnable;>;
Signature: (Ljava/util/List<Ljava/lang/Runnable;>;)V
MethodParameters:
Name Flags
tasks
boolean trySetALPN();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndSet:(I)I
bipush -5
iand
iconst_1
if_icmpne 5
1: aload 0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
putfield jdk.internal.net.http.common.SSLFlowDelegate.applicationBufferSize:I
2: aload 0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
putfield jdk.internal.net.http.common.SSLFlowDelegate.packetBufferSize:I
3: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.setALPN:()V
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
jdk.internal.net.http.common.SSLFlowDelegate$EngineResult doClosure(jdk.internal.net.http.common.SSLFlowDelegate$EngineResult);
descriptor: (Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;)Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 5
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "doClosure(%s): %s [isOutboundDone: %s, isInboundDone: %s]"
iconst_4
anewarray java.lang.Object
dup
iconst_0
2: aload 1
getfield jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.result:Ljavax/net/ssl/SSLEngineResult;
aastore
dup
iconst_1
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
aastore
dup
iconst_2
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_3
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.isInboundDone:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
4: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 18
6: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.isInboundDone:()Z
ifeq 18
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.isOutboundDone:()Z
ifne 18
7: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.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.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "doClosure: close_notify received"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.common.SSLFlowDelegate.close_notify_received:Z
9: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifne 12
10: aload 0
aload 1
iconst_1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.doHandshake:(Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;I)Z
pop
11: goto 18
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBufferLock:Ljava/lang/Object;
dup
astore 2
monitorenter
13: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
iconst_1
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.completing:Z
14: aload 2
monitorexit
15: goto 18
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate jdk.internal.net.http.common.SSLFlowDelegate$EngineResult java.lang.Object
StackMap stack: java.lang.Throwable
16: aload 2
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
0 19 1 r Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
Exception table:
from to target type
13 15 16 any
16 17 16 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
r
public java.util.concurrent.Flow$Subscriber<java.util.List<java.nio.ByteBuffer>> upstreamReader();
descriptor: ()Ljava/util/concurrent/Flow$Subscriber;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
Signature: ()Ljava/util/concurrent/Flow$Subscriber<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
public java.util.concurrent.Flow$Subscriber<java.util.List<java.nio.ByteBuffer>> upstreamWriter();
descriptor: ()Ljava/util/concurrent/Flow$Subscriber;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
Signature: ()Ljava/util/concurrent/Flow$Subscriber<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
public boolean resumeReader();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.signalScheduling:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
public void resetReaderDemand();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.reader:Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.resetDownstreamDemand:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
final java.nio.ByteBuffer getNetBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.packetBufferSize:I
istore 1
start local 1 1: iload 1
ifgt 3
2: aload 0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
dup
istore 1
putfield jdk.internal.net.http.common.SSLFlowDelegate.packetBufferSize:I
3: StackMap locals: int
StackMap stack:
iload 1
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
1 4 1 netSize I
final java.nio.ByteBuffer getAppBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.applicationBufferSize:I
istore 1
start local 1 1: iload 1
ifgt 5
2: aload 0
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
4: dup
istore 1
putfield jdk.internal.net.http.common.SSLFlowDelegate.applicationBufferSize:I
5: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.adaptiveAppBufferSize:I
istore 2
start local 2 6: iload 2
ifgt 9
7: sipush 512
istore 2
8: goto 11
StackMap locals: int
StackMap stack:
9: iload 2
iload 1
if_icmple 11
10: iload 1
istore 2
11: StackMap locals:
StackMap stack:
iload 2
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
1 12 1 appSize I
6 12 2 size I
final java.lang.String dbgString();
descriptor: ()Ljava/lang/String;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "SSLFlowDelegate("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.tubeName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
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/common/SSLFlowDelegate;
static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.internal.net.http.common.SSLFlowDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic javax.net.ssl.SSLEngineResult$HandshakeStatus.values:()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
arraylength
newarray 10
astore 0
2: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.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 javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP_AGAIN:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
bipush 6
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_4
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.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.common.SSLFlowDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[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 static int lambda$2(int, int);
descriptor: (II)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iconst_4
iand
ifne 2
1: iconst_4
iload 0
iconst_1
iand
ior
ireturn
2: StackMap locals:
StackMap stack:
bipush 12
iload 0
iconst_1
iand
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 current I
0 3 1 ignored I
private static int lambda$3(int, int);
descriptor: (II)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
bipush 8
iand
ifeq 2
1: iconst_4
iload 0
iconst_1
iand
ior
ireturn
2: StackMap locals:
StackMap stack:
iload 0
iconst_1
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 current I
0 3 1 ignored I
private static int lambda$7(int, int);
descriptor: (II)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
iload 0
bipush 12
iand
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 current I
0 1 1 unused I
private void lambda$8(java.util.List);
descriptor: (Ljava/util/List;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=2
start local 0 0: aload 1
astore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.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.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
new java.lang.StringBuilder
dup
ldc "#tasks to execute: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface java.util.List.size:()I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
2: StackMap locals: java.util.List
StackMap stack:
aload 2
invokedynamic accept()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
java/lang/Runnable.run()V (9 itf)
(Ljava/lang/Runnable;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 6
4: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.obtainTasks:()Ljava/util/List;
astore 2
5: goto 2
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
getstatic jdk.internal.net.http.common.SSLFlowDelegate.FINISH_OR_DO_TASKS:Ljava/util/function/IntBinaryOperator;
invokevirtual java.util.concurrent.atomic.AtomicInteger.accumulateAndGet:(ILjava/util/function/IntBinaryOperator;)I
istore 3
start local 3 7: iload 3
iconst_4
iand
ifeq 11
8: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 9
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "re-running tasks (B)"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
9: StackMap locals: int
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.obtainTasks:()Ljava/util/List;
astore 2
end local 3 10: goto 2
11: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.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.common.SSLFlowDelegate.debug:Ljdk/internal/net/http/common/Logger;
ldc "finished task execution"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 3
start local 3 13: aload 3
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpeq 14
aload 3
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 15
14: StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.trySetALPN:()Z
pop
15: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.resumeActivity:()V
end local 3 end local 2 16: goto 19
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate java.util.List
StackMap stack: java.lang.Throwable
17: astore 2
start local 2 18: aload 0
aload 2
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.handleError:(Ljava/lang/Throwable;)V
end local 2 19: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/net/http/common/SSLFlowDelegate;
1 16 2 nextTasks Ljava/util/List<Ljava/lang/Runnable;>;
7 10 3 s I
13 16 3 hs Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
18 19 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 16 17 Class java.lang.Throwable
}
SourceFile: "SSLFlowDelegate.java"
NestMembers:
jdk.internal.net.http.common.SSLFlowDelegate$EngineResult jdk.internal.net.http.common.SSLFlowDelegate$Monitor jdk.internal.net.http.common.SSLFlowDelegate$Monitor$FinalMonitorable jdk.internal.net.http.common.SSLFlowDelegate$Monitorable jdk.internal.net.http.common.SSLFlowDelegate$Reader jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher jdk.internal.net.http.common.SSLFlowDelegate$Writer jdk.internal.net.http.common.SSLFlowDelegate$Writer$WriterDownstreamPusher
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Subscriber = java.util.concurrent.Flow$Subscriber of java.util.concurrent.Flow
public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
EngineResult = jdk.internal.net.http.common.SSLFlowDelegate$EngineResult of jdk.internal.net.http.common.SSLFlowDelegate
public Monitor = jdk.internal.net.http.common.SSLFlowDelegate$Monitor of jdk.internal.net.http.common.SSLFlowDelegate
public abstract Monitorable = jdk.internal.net.http.common.SSLFlowDelegate$Monitorable of jdk.internal.net.http.common.SSLFlowDelegate
final Reader = jdk.internal.net.http.common.SSLFlowDelegate$Reader of jdk.internal.net.http.common.SSLFlowDelegate
Writer = jdk.internal.net.http.common.SSLFlowDelegate$Writer of jdk.internal.net.http.common.SSLFlowDelegate
public final SchedulingAction = jdk.internal.net.http.common.SubscriberWrapper$SchedulingAction of jdk.internal.net.http.common.SubscriberWrapper