class jdk.incubator.http.AsyncSSLDelegate implements jdk.incubator.http.internal.common.ExceptionallyCloseable, jdk.incubator.http.AsyncConnection
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.incubator.http.AsyncSSLDelegate
super_class: java.lang.Object
{
final jdk.incubator.http.internal.common.AsyncWriteQueue appOutputQ;
descriptor: Ljdk/incubator/http/internal/common/AsyncWriteQueue;
flags: (0x0010) ACC_FINAL
final jdk.incubator.http.internal.common.Queue<jdk.incubator.http.internal.common.ByteBufferReference> channelInputQ;
descriptor: Ljdk/incubator/http/internal/common/Queue;
flags: (0x0010) ACC_FINAL
Signature: Ljdk/incubator/http/internal/common/Queue<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
final javax.net.ssl.SSLEngine engine;
descriptor: Ljavax/net/ssl/SSLEngine;
flags: (0x0010) ACC_FINAL
final javax.net.ssl.SSLParameters sslParameters;
descriptor: Ljavax/net/ssl/SSLParameters;
flags: (0x0010) ACC_FINAL
final jdk.incubator.http.HttpConnection lowerOutput;
descriptor: Ljdk/incubator/http/HttpConnection;
flags: (0x0010) ACC_FINAL
final jdk.incubator.http.HttpClientImpl client;
descriptor: Ljdk/incubator/http/HttpClientImpl;
flags: (0x0010) ACC_FINAL
volatile java.util.function.Consumer<jdk.incubator.http.internal.common.ByteBufferReference> asyncReceiver;
descriptor: Ljava/util/function/Consumer;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/function/Consumer<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
volatile java.util.function.Consumer<java.lang.Throwable> errorHandler;
descriptor: Ljava/util/function/Consumer;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/function/Consumer<Ljava/lang/Throwable;>;
volatile boolean connected;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final java.lang.Object reader;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.Semaphore handshaker;
descriptor: Ljava/util/concurrent/Semaphore;
flags: (0x0010) ACC_FINAL
final java.lang.String[] alpn;
descriptor: [Ljava/lang/String;
flags: (0x0010) ACC_FINAL
private final jdk.incubator.http.internal.common.ByteBufferPool netBufferPool;
descriptor: Ljdk/incubator/http/internal/common/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.internal.common.ByteBufferPool appBufferPool;
descriptor: Ljdk/incubator/http/internal/common/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/incubator/http/AsyncSSLDelegate;
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.incubator.http.AsyncSSLDelegate.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.incubator.http.HttpConnection, jdk.incubator.http.HttpClientImpl, java.lang.String[]);
descriptor: (Ljdk/incubator/http/HttpConnection;Ljdk/incubator/http/HttpClientImpl;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=6, 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
new jdk.incubator.http.internal.common.AsyncWriteQueue
dup
aload 0
invokedynamic accept(Ljdk/incubator/http/AsyncSSLDelegate;)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/incubator/http/AsyncSSLDelegate.upperWrite([Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/AsyncWriteQueue;)V (7)
([Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/AsyncWriteQueue;)V
invokespecial jdk.incubator.http.internal.common.AsyncWriteQueue.<init>:(Ljava/util/function/BiConsumer;)V
putfield jdk.incubator.http.AsyncSSLDelegate.appOutputQ:Ljdk/incubator/http/internal/common/AsyncWriteQueue;
2: aload 0
iconst_0
putfield jdk.incubator.http.AsyncSSLDelegate.connected:Z
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield jdk.incubator.http.AsyncSSLDelegate.reader:Ljava/lang/Object;
4: aload 0
new java.util.concurrent.Semaphore
dup
iconst_1
invokespecial java.util.concurrent.Semaphore.<init>:(I)V
putfield jdk.incubator.http.AsyncSSLDelegate.handshaker:Ljava/util/concurrent/Semaphore;
5: aload 0
new jdk.incubator.http.internal.common.ByteBufferPool
dup
invokespecial jdk.incubator.http.internal.common.ByteBufferPool.<init>:()V
putfield jdk.incubator.http.AsyncSSLDelegate.netBufferPool:Ljdk/incubator/http/internal/common/ByteBufferPool;
6: aload 0
new jdk.incubator.http.internal.common.ByteBufferPool
dup
invokespecial jdk.incubator.http.internal.common.ByteBufferPool.<init>:()V
putfield jdk.incubator.http.AsyncSSLDelegate.appBufferPool:Ljdk/incubator/http/internal/common/ByteBufferPool;
7: aload 2
invokevirtual jdk.incubator.http.HttpClientImpl.sslContext:()Ljavax/net/ssl/SSLContext;
astore 4
start local 4 8: aload 0
aload 4
invokevirtual javax.net.ssl.SSLContext.createSSLEngine:()Ljavax/net/ssl/SSLEngine;
putfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
9: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
iconst_1
invokevirtual javax.net.ssl.SSLEngine.setUseClientMode:(Z)V
10: aload 2
invokevirtual jdk.incubator.http.HttpClientImpl.sslParameters:()Ljava/util/Optional;
11: aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Ljavax/net/ssl/SSLContext;)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;
javax/net/ssl/SSLContext.getSupportedSSLParameters()Ljavax/net/ssl/SSLParameters; (5)
()Ljavax/net/ssl/SSLParameters;
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast javax.net.ssl.SSLParameters
12: astore 5
start local 5 13: aload 0
aload 5
invokestatic jdk.incubator.http.internal.common.Utils.copySSLParameters:(Ljavax/net/ssl/SSLParameters;)Ljavax/net/ssl/SSLParameters;
putfield jdk.incubator.http.AsyncSSLDelegate.sslParameters:Ljavax/net/ssl/SSLParameters;
14: aload 3
ifnull 18
15: new java.lang.StringBuilder
dup
ldc "AsyncSSLDelegate: Setting application protocols: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic jdk.incubator.http.internal.common.Log.logSSL:(Ljava/lang/String;[Ljava/lang/Object;)V
16: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.sslParameters:Ljavax/net/ssl/SSLParameters;
aload 3
invokevirtual javax.net.ssl.SSLParameters.setApplicationProtocols:([Ljava/lang/String;)V
17: goto 19
18: StackMap locals: jdk.incubator.http.AsyncSSLDelegate jdk.incubator.http.HttpConnection jdk.incubator.http.HttpClientImpl java.lang.String[] javax.net.ssl.SSLContext javax.net.ssl.SSLParameters
StackMap stack:
ldc "AsyncSSLDelegate: no applications set!"
iconst_0
anewarray java.lang.Object
invokestatic jdk.incubator.http.internal.common.Log.logSSL:(Ljava/lang/String;[Ljava/lang/Object;)V
19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.sslParameters:Ljavax/net/ssl/SSLParameters;
invokestatic jdk.incubator.http.AsyncSSLDelegate.logParams:(Ljavax/net/ssl/SSLParameters;)V
20: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.sslParameters:Ljavax/net/ssl/SSLParameters;
invokevirtual javax.net.ssl.SSLEngine.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
21: aload 0
aload 1
putfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
22: aload 0
aload 2
putfield jdk.incubator.http.AsyncSSLDelegate.client:Ljdk/incubator/http/HttpClientImpl;
23: aload 0
new jdk.incubator.http.internal.common.Queue
dup
invokespecial jdk.incubator.http.internal.common.Queue.<init>:()V
putfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
24: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
aload 0
invokedynamic run(Ljdk/incubator/http/AsyncSSLDelegate;)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/incubator/http/AsyncSSLDelegate.upperRead()V (5)
()V
invokevirtual jdk.incubator.http.internal.common.Queue.registerPutCallback:(Ljava/lang/Runnable;)V
25: aload 0
aload 3
putfield jdk.incubator.http.AsyncSSLDelegate.alpn:[Ljava/lang/String;
26: 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 27 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 27 1 lowerOutput Ljdk/incubator/http/HttpConnection;
0 27 2 client Ljdk/incubator/http/HttpClientImpl;
0 27 3 alpn [Ljava/lang/String;
8 27 4 context Ljavax/net/ssl/SSLContext;
13 27 5 sslp Ljavax/net/ssl/SSLParameters;
MethodParameters:
Name Flags
lowerOutput
client
alpn
public void writeAsync(jdk.incubator.http.internal.common.ByteBufferReference[]);
descriptor: ([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.appOutputQ:Ljdk/incubator/http/internal/common/AsyncWriteQueue;
aload 1
invokevirtual jdk.incubator.http.internal.common.AsyncWriteQueue.put:([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 2 1 src [Ljdk/incubator/http/internal/common/ByteBufferReference;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public void writeAsyncUnordered(jdk.incubator.http.internal.common.ByteBufferReference[]);
descriptor: ([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.appOutputQ:Ljdk/incubator/http/internal/common/AsyncWriteQueue;
aload 1
invokevirtual jdk.incubator.http.internal.common.AsyncWriteQueue.putFirst:([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 2 1 buffers [Ljdk/incubator/http/internal/common/ByteBufferReference;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffers
public void flushAsync();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.appOutputQ:Ljdk/incubator/http/internal/common/AsyncWriteQueue;
invokevirtual jdk.incubator.http.internal.common.AsyncWriteQueue.flush:()Z
ifeq 2
1: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.flushAsync:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/AsyncSSLDelegate;
Exceptions:
throws java.io.IOException
javax.net.ssl.SSLEngine getEngine();
descriptor: ()Ljavax/net/ssl/SSLEngine;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
public void closeExceptionally(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_3
anewarray java.io.Closeable
dup
iconst_0
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.appOutputQ:Ljdk/incubator/http/internal/common/AsyncWriteQueue;
aastore
dup
iconst_1
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
aastore
dup
iconst_2
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
aastore
invokestatic jdk.incubator.http.internal.common.Utils.close:(Ljava/lang/Throwable;[Ljava/io/Closeable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 2 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iconst_3
anewarray java.io.Closeable
dup
iconst_0
1: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.appOutputQ:Ljdk/incubator/http/internal/common/AsyncWriteQueue;
aastore
dup
iconst_1
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
aastore
dup
iconst_2
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
aastore
invokestatic jdk.incubator.http.internal.common.Utils.close:([Ljava/io/Closeable;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/AsyncSSLDelegate;
private void upperWrite(jdk.incubator.http.internal.common.ByteBufferReference[], jdk.incubator.http.internal.common.AsyncWriteQueue);
descriptor: ([Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/AsyncWriteQueue;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic jdk.incubator.http.internal.common.ByteBufferReference.toBuffers:([Ljdk/incubator/http/internal/common/ByteBufferReference;)[Ljava/nio/ByteBuffer;
astore 3
start local 3 1: aload 3
invokestatic jdk.incubator.http.internal.common.Utils.remaining:([Ljava/nio/ByteBuffer;)I
istore 4
start local 4 2: goto 12
3: StackMap locals: java.nio.ByteBuffer[] int
StackMap stack:
aload 0
aload 3
invokevirtual jdk.incubator.http.AsyncSSLDelegate.wrapBuffers:([Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
astore 5
start local 5 4: aload 5
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.bytesProduced:()I
istore 6
start local 6 5: aload 5
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.bytesConsumed:()I
istore 7
start local 7 6: iload 4
iload 7
isub
istore 4
7: iload 6
ifle 9
8: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
iconst_1
anewarray jdk.incubator.http.internal.common.ByteBufferReference
dup
iconst_0
aload 5
getfield jdk.incubator.http.AsyncSSLDelegate$EngineResult.destBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
aastore
invokevirtual jdk.incubator.http.HttpConnection.writeAsync:([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
9: StackMap locals: jdk.incubator.http.AsyncSSLDelegate$EngineResult int int
StackMap stack:
aload 5
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.handshaking:()Z
ifeq 12
10: ldc "Write: needs handshake"
iconst_0
anewarray java.lang.Object
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
11: aload 0
ldc "Write"
invokevirtual jdk.incubator.http.AsyncSSLDelegate.doHandshakeNow:(Ljava/lang/String;)V
end local 7 end local 6 end local 5 12: StackMap locals:
StackMap stack:
iload 4
ifgt 3
13: aload 1
invokestatic jdk.incubator.http.internal.common.ByteBufferReference.clear:([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
end local 4 end local 3 14: goto 18
StackMap locals: jdk.incubator.http.AsyncSSLDelegate jdk.incubator.http.internal.common.ByteBufferReference[] jdk.incubator.http.internal.common.AsyncWriteQueue
StackMap stack: java.lang.Throwable
15: astore 3
start local 3 16: aload 0
aload 3
invokevirtual jdk.incubator.http.AsyncSSLDelegate.closeExceptionally:(Ljava/lang/Throwable;)V
17: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.errorHandler:Ljava/util/function/Consumer;
aload 3
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 3 18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 19 1 refs [Ljdk/incubator/http/internal/common/ByteBufferReference;
0 19 2 delayCallback Ljdk/incubator/http/internal/common/AsyncWriteQueue;
1 14 3 buffers [Ljava/nio/ByteBuffer;
2 14 4 bytes I
4 12 5 r Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
5 12 6 bytesProduced I
6 12 7 bytesConsumed I
16 18 3 t Ljava/lang/Throwable;
Exception table:
from to target type
0 14 15 Class java.lang.Throwable
MethodParameters:
Name Flags
refs
delayCallback
void connect();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "Init"
invokevirtual jdk.incubator.http.AsyncSSLDelegate.doHandshakeNow:(Ljava/lang/String;)V
1: aload 0
iconst_1
putfield jdk.incubator.http.AsyncSSLDelegate.connected:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/AsyncSSLDelegate;
Exceptions:
throws java.io.IOException, java.lang.InterruptedException
boolean connected();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.connected:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
private void startHandshake(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokedynamic run(Ljdk/incubator/http/AsyncSSLDelegate;Ljava/lang/String;)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/incubator/http/AsyncSSLDelegate.lambda$3(Ljava/lang/String;)V (7)
()V
astore 2
start local 2 1: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.client:Ljdk/incubator/http/HttpClientImpl;
invokevirtual jdk.incubator.http.HttpClientImpl.executor:()Ljava/util/concurrent/Executor;
aload 2
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 3 1 tag Ljava/lang/String;
1 3 2 run Ljava/lang/Runnable;
MethodParameters:
Name Flags
tag
private void doHandshakeNow(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.handshaker:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.acquire:()V
1: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
invokevirtual jdk.incubator.http.internal.common.Queue.disableCallback:()V
2: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.flushAsync:()V
3: ldc "{0}: Starting handshake..."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.doHandshakeImpl:()V
5: ldc "{0}: Handshake completed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.handshaker:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.handshaker:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 12 1 tag Ljava/lang/String;
Exception table:
from to target type
1 7 7 any
Exceptions:
throws java.io.IOException, java.lang.InterruptedException
MethodParameters:
Name Flags
tag
public void enableCallback();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
invokevirtual jdk.incubator.http.internal.common.Queue.enableCallback:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/AsyncSSLDelegate;
private void doHandshakeImpl();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 1
start local 1 2: invokestatic jdk.incubator.http.AsyncSSLDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
aload 1
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iaload
tableswitch { // 1 - 6
1: 14
2: 13
3: 3
4: 9
5: 11
6: 11
default: 15
}
3: StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.obtainTasks:()Ljava/util/List;
astore 2
start local 2 4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: jdk.incubator.http.AsyncSSLDelegate javax.net.ssl.SSLEngineResult$HandshakeStatus java.util.List top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 3
start local 3 6: aload 3
invokeinterface java.lang.Runnable.run:()V
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 8: goto 1
9: StackMap locals: jdk.incubator.http.AsyncSSLDelegate javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.handshakeWrapAndSend:()Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
pop
10: goto 1
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.handshakeReceiveAndUnWrap:()V
12: goto 1
13: StackMap locals:
StackMap stack:
return
14: StackMap locals:
StackMap stack:
return
15: 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
16: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljdk/incubator/http/AsyncSSLDelegate;
2 18 1 status Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
4 8 2 tasks Ljava/util/List<Ljava/lang/Runnable;>;
6 7 3 task Ljava/lang/Runnable;
Exceptions:
throws java.io.IOException
void doClosure();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
Exceptions:
throws java.io.IOException
java.util.List<java.lang.Runnable> obtainTasks();
descriptor: ()Ljava/util/List;
flags: (0x0000)
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.incubator.http.AsyncSSLDelegate.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/incubator/http/AsyncSSLDelegate;
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;>;
public void setAsyncCallbacks(java.util.function.Consumer<jdk.incubator.http.internal.common.ByteBufferReference>, java.util.function.Consumer<java.lang.Throwable>, java.util.function.Supplier<jdk.incubator.http.internal.common.ByteBufferReference>);
descriptor: (Ljava/util/function/Consumer;Ljava/util/function/Consumer;Ljava/util/function/Supplier;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
putfield jdk.incubator.http.AsyncSSLDelegate.asyncReceiver:Ljava/util/function/Consumer;
1: aload 0
aload 2
putfield jdk.incubator.http.AsyncSSLDelegate.errorHandler:Ljava/util/function/Consumer;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 3 1 asyncReceiver Ljava/util/function/Consumer<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
0 3 2 errorReceiver Ljava/util/function/Consumer<Ljava/lang/Throwable;>;
0 3 3 readBufferSupplier Ljava/util/function/Supplier<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
Signature: (Ljava/util/function/Consumer<Ljdk/incubator/http/internal/common/ByteBufferReference;>;Ljava/util/function/Consumer<Ljava/lang/Throwable;>;Ljava/util/function/Supplier<Ljdk/incubator/http/internal/common/ByteBufferReference;>;)V
MethodParameters:
Name Flags
asyncReceiver
errorReceiver
readBufferSupplier
public void startReading();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
public void stopAsyncReading();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
jdk.incubator.http.AsyncSSLDelegate$EngineResult handshakeWrapAndSend();
descriptor: ()Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getstatic jdk.incubator.http.internal.common.Utils.EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer;
invokevirtual jdk.incubator.http.AsyncSSLDelegate.wrapBuffer:(Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
astore 1
start local 1 1: aload 1
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.bytesProduced:()I
ifle 4
2: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
iconst_1
anewarray jdk.incubator.http.internal.common.ByteBufferReference
dup
iconst_0
aload 1
getfield jdk.incubator.http.AsyncSSLDelegate$EngineResult.destBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
aastore
invokevirtual jdk.incubator.http.HttpConnection.writeAsync:([Ljdk/incubator/http/internal/common/ByteBufferReference;)V
3: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.lowerOutput:Ljdk/incubator/http/HttpConnection;
invokevirtual jdk.incubator.http.HttpConnection.flushAsync:()V
4: StackMap locals: jdk.incubator.http.AsyncSSLDelegate$EngineResult
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/incubator/http/AsyncSSLDelegate;
1 5 1 r Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
Exceptions:
throws java.io.IOException
void handshakeReceiveAndUnWrap();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
invokevirtual jdk.incubator.http.internal.common.Queue.take:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.ByteBufferReference
astore 1
start local 1 1: StackMap locals: jdk.incubator.http.internal.common.ByteBufferReference
StackMap stack:
aload 0
aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual jdk.incubator.http.AsyncSSLDelegate.unwrapBuffer:(Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
astore 2
start local 2 2: aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.status:()Ljavax/net/ssl/SSLEngineResult$Status;
astore 3
start local 3 3: aload 3
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 7
4: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
invokevirtual jdk.incubator.http.internal.common.Queue.take:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.ByteBufferReference
astore 4
start local 4 5: aload 0
aload 1
aload 4
invokevirtual jdk.incubator.http.AsyncSSLDelegate.combine:(Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 1
6: goto 1
end local 4 7: StackMap locals: jdk.incubator.http.AsyncSSLDelegate$EngineResult javax.net.ssl.SSLEngineResult$Status
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.bytesProduced:()I
ifle 10
8: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.asyncReceiver:Ljava/util/function/Consumer;
aload 2
getfield jdk.incubator.http.AsyncSSLDelegate$EngineResult.destBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 2
getfield jdk.incubator.http.AsyncSSLDelegate$EngineResult.destBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
11: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.handshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 13
12: aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.obtainTasks:()Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
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
jdk/incubator/http/AsyncSSLDelegate.lambda$4(Ljava/lang/Runnable;)V (6)
(Ljava/lang/Runnable;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
13: StackMap locals:
StackMap stack:
aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 1
14: aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
15: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/incubator/http/AsyncSSLDelegate;
1 16 1 ref Ljdk/incubator/http/internal/common/ByteBufferReference;
2 16 2 r Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
3 16 3 status Ljavax/net/ssl/SSLEngineResult$Status;
5 7 4 ref1 Ljdk/incubator/http/internal/common/ByteBufferReference;
Exceptions:
throws java.io.IOException
jdk.incubator.http.AsyncSSLDelegate$EngineResult wrapBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: iconst_1
anewarray java.nio.ByteBuffer
astore 2
start local 2 1: aload 2
iconst_0
aload 1
aastore
2: aload 0
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate.wrapBuffers:([Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 3 1 src Ljava/nio/ByteBuffer;
1 3 2 bufs [Ljava/nio/ByteBuffer;
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
src
public jdk.incubator.http.internal.common.ByteBufferReference getNetBuffer();
descriptor: ()Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.netBufferPool:Ljdk/incubator/http/internal/common/ByteBufferPool;
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
invokevirtual jdk.incubator.http.internal.common.ByteBufferPool.get:(I)Ljdk/incubator/http/internal/common/ByteBufferReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
private jdk.incubator.http.internal.common.ByteBufferReference getAppBuffer();
descriptor: ()Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.appBufferPool:Ljdk/incubator/http/internal/common/ByteBufferPool;
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getApplicationBufferSize:()I
invokevirtual jdk.incubator.http.internal.common.ByteBufferPool.get:(I)Ljdk/incubator/http/internal/common/ByteBufferReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
jdk.incubator.http.AsyncSSLDelegate$EngineResult wrapBuffers(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.getNetBuffer:()Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 2
start local 2 1: StackMap locals: jdk.incubator.http.internal.common.ByteBufferReference
StackMap stack:
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
aload 1
aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 3
start local 3 2: invokestatic jdk.incubator.http.AsyncSSLDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
aload 3
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 7
2: 3
3: 5
4: 5
default: 8
}
3: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.getNetBuffer:()Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 2
4: goto 1
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
6: new jdk.incubator.http.AsyncSSLDelegate$EngineResult
dup
aload 3
aload 2
invokespecial jdk.incubator.http.AsyncSSLDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;Ljdk/incubator/http/internal/common/ByteBufferReference;)V
areturn
7: StackMap locals:
StackMap stack:
new jdk.incubator.http.AsyncSSLDelegate$EngineResult
dup
aload 3
invokespecial jdk.incubator.http.AsyncSSLDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;)V
areturn
8: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.AsyncSSLDelegate.$assertionsDisabled:Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 9 1 src [Ljava/nio/ByteBuffer;
1 9 2 dst Ljdk/incubator/http/internal/common/ByteBufferReference;
2 9 3 sslResult Ljavax/net/ssl/SSLEngineResult;
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
src
jdk.incubator.http.AsyncSSLDelegate$EngineResult unwrapBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.getAppBuffer:()Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 2
start local 2 1: StackMap locals: jdk.incubator.http.internal.common.ByteBufferReference
StackMap stack:
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
aload 1
aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 3
start local 3 2: invokestatic jdk.incubator.http.AsyncSSLDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
aload 3
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 7
2: 3
3: 9
4: 5
default: 11
}
3: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.getAppBuffer:()Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 2
4: goto 1
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.doClosure:()V
6: new java.io.IOException
dup
ldc "Engine closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
8: new jdk.incubator.http.AsyncSSLDelegate$EngineResult
dup
aload 3
invokespecial jdk.incubator.http.AsyncSSLDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;)V
areturn
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
10: new jdk.incubator.http.AsyncSSLDelegate$EngineResult
dup
aload 3
aload 2
invokespecial jdk.incubator.http.AsyncSSLDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;Ljdk/incubator/http/internal/common/ByteBufferReference;)V
areturn
end local 3 11: StackMap locals:
StackMap stack:
goto 1
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 12 1 srcbuf Ljava/nio/ByteBuffer;
1 12 2 dst Ljdk/incubator/http/internal/common/ByteBufferReference;
2 11 3 sslResult Ljavax/net/ssl/SSLEngineResult;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcbuf
public void asyncReceive(jdk.incubator.http.internal.common.ByteBufferReference);
descriptor: (Ljdk/incubator/http/internal/common/ByteBufferReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
aload 1
invokevirtual jdk.incubator.http.internal.common.Queue.put:(Ljava/lang/Object;)V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 2
start local 2 3: aload 0
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate.closeExceptionally:(Ljava/lang/Throwable;)V
4: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.errorHandler:Ljava/util/function/Consumer;
aload 2
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 6 1 buffer Ljdk/incubator/http/internal/common/ByteBufferReference;
3 5 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
MethodParameters:
Name Flags
buffer
private jdk.incubator.http.internal.common.ByteBufferReference pollInput();
descriptor: ()Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
invokevirtual jdk.incubator.http.internal.common.Queue.poll:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.ByteBufferReference
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
Exceptions:
throws java.io.IOException
private jdk.incubator.http.internal.common.ByteBufferReference pollInput(jdk.incubator.http.internal.common.ByteBufferReference);
descriptor: (Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
invokevirtual jdk.incubator.http.internal.common.Queue.poll:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.ByteBufferReference
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: jdk.incubator.http.internal.common.ByteBufferReference
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 3 1 next Ljdk/incubator/http/internal/common/ByteBufferReference;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
next
public void upperRead();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aconst_null
astore 2
start local 2 1: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.reader:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.pollInput:()Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 1
start local 1 3: aload 1
ifnonnull 6
4: aload 3
monitorexit
5: return
6: StackMap locals: jdk.incubator.http.internal.common.ByteBufferReference jdk.incubator.http.internal.common.ByteBufferReference java.lang.Object
StackMap stack:
aload 0
aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual jdk.incubator.http.AsyncSSLDelegate.unwrapBuffer:(Ljava/nio/ByteBuffer;)Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
astore 4
start local 4 7: invokestatic jdk.incubator.http.AsyncSSLDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
aload 4
getfield jdk.incubator.http.AsyncSSLDelegate$EngineResult.result:Ljavax/net/ssl/SSLEngineResult;
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 8
2: 25
3: 18
default: 25
}
8: StackMap locals: jdk.incubator.http.AsyncSSLDelegate$EngineResult
StackMap stack:
aload 0
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate.pollInput:(Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 2
9: aload 2
ifnonnull 13
10: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
aload 1
invokevirtual jdk.incubator.http.internal.common.Queue.pushback:(Ljava/lang/Object;)V
11: aload 3
monitorexit
12: return
13: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate.shift:(Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 1
14: aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 25
15: aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
16: aconst_null
astore 2
17: goto 25
18: StackMap locals:
StackMap stack:
aload 4
invokevirtual jdk.incubator.http.AsyncSSLDelegate$EngineResult.handshaking:()Z
ifeq 24
19: ldc "Read: needs handshake"
iconst_0
anewarray java.lang.Object
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
20: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.channelInputQ:Ljdk/incubator/http/internal/common/Queue;
aload 1
invokevirtual jdk.incubator.http.internal.common.Queue.pushback:(Ljava/lang/Object;)V
21: aload 0
ldc "Read"
invokevirtual jdk.incubator.http.AsyncSSLDelegate.startHandshake:(Ljava/lang/String;)V
22: aload 3
monitorexit
23: return
24: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.asyncReceiver:Ljava/util/function/Consumer;
aload 4
getfield jdk.incubator.http.AsyncSSLDelegate$EngineResult.destBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
25: StackMap locals:
StackMap stack:
aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 27
26: goto 6
27: StackMap locals:
StackMap stack:
aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
28: aload 0
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate.pollInput:(Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 1
29: aconst_null
astore 2
30: aload 1
ifnonnull 6
31: aload 3
monitorexit
32: return
end local 4 end local 1 33: StackMap locals: jdk.incubator.http.AsyncSSLDelegate top jdk.incubator.http.internal.common.ByteBufferReference java.lang.Object
StackMap stack: java.lang.Throwable
astore 4
start local 4 34: aload 0
aload 4
invokevirtual jdk.incubator.http.AsyncSSLDelegate.closeExceptionally:(Ljava/lang/Throwable;)V
35: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.errorHandler:Ljava/util/function/Consumer;
aload 4
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 4 36: aload 3
monitorexit
37: goto 40
StackMap locals:
StackMap stack: java.lang.Throwable
38: aload 3
monitorexit
39: athrow
40: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Ljdk/incubator/http/AsyncSSLDelegate;
3 33 1 src Ljdk/incubator/http/internal/common/ByteBufferReference;
1 41 2 next Ljdk/incubator/http/internal/common/ByteBufferReference;
7 33 4 r Ljdk/incubator/http/AsyncSSLDelegate$EngineResult;
34 36 4 t Ljava/lang/Throwable;
Exception table:
from to target type
2 4 33 Class java.lang.Throwable
6 11 33 Class java.lang.Throwable
13 22 33 Class java.lang.Throwable
24 31 33 Class java.lang.Throwable
2 5 38 any
6 12 38 any
13 23 38 any
24 32 38 any
33 37 38 any
38 39 38 any
jdk.incubator.http.internal.common.ByteBufferReference shift(jdk.incubator.http.internal.common.ByteBufferReference, jdk.incubator.http.internal.common.ByteBufferReference);
descriptor: (Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 3
start local 3 1: aload 3
invokevirtual java.nio.ByteBuffer.capacity:()I
aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
if_icmpge 9
2: aload 0
invokevirtual jdk.incubator.http.AsyncSSLDelegate.getNetBuffer:()Ljdk/incubator/http/internal/common/ByteBufferReference;
astore 4
start local 4 3: aload 4
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 5
start local 5 4: aload 5
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
5: aload 5
astore 3
6: aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
7: aload 4
astore 1
end local 5 end local 4 8: goto 10
9: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
10: StackMap locals:
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 4
start local 4 11: aload 4
aload 3
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
invokestatic jdk.incubator.http.internal.common.Utils.copy:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;I)V
12: aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
13: 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 14 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 14 1 ref1 Ljdk/incubator/http/internal/common/ByteBufferReference;
0 14 2 ref2 Ljdk/incubator/http/internal/common/ByteBufferReference;
1 14 3 buf1 Ljava/nio/ByteBuffer;
3 8 4 newRef Ljdk/incubator/http/internal/common/ByteBufferReference;
4 8 5 newBuf Ljava/nio/ByteBuffer;
11 14 4 buf2 Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
ref1
ref2
jdk.incubator.http.internal.common.ByteBufferReference combine(jdk.incubator.http.internal.common.ByteBufferReference, jdk.incubator.http.internal.common.ByteBufferReference);
descriptor: (Ljdk/incubator/http/internal/common/ByteBufferReference;Ljdk/incubator/http/internal/common/ByteBufferReference;)Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0000)
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 3
start local 3 1: aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 4
start local 4 2: aload 3
invokevirtual java.nio.ByteBuffer.capacity:()I
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
istore 5
start local 5 3: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 5
if_icmpge 9
4: aload 3
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
5: aload 3
aload 4
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
6: aload 3
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
7: aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
8: aload 1
areturn
9: StackMap locals: java.nio.ByteBuffer java.nio.ByteBuffer int
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 6
start local 6 10: iload 6
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 7
start local 7 11: aload 7
aload 3
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
12: aload 7
aload 4
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
13: aload 7
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
14: aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
15: aload 2
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.clear:()V
16: aload 7
invokestatic jdk.incubator.http.internal.common.ByteBufferReference.of:(Ljava/nio/ByteBuffer;)Ljdk/incubator/http/internal/common/ByteBufferReference;
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 17 0 this Ljdk/incubator/http/AsyncSSLDelegate;
0 17 1 ref1 Ljdk/incubator/http/internal/common/ByteBufferReference;
0 17 2 ref2 Ljdk/incubator/http/internal/common/ByteBufferReference;
1 17 3 buf1 Ljava/nio/ByteBuffer;
2 17 4 buf2 Ljava/nio/ByteBuffer;
3 17 5 avail1 I
10 17 6 newsize I
11 17 7 newbuf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
ref1
ref2
javax.net.ssl.SSLParameters getSSLParameters();
descriptor: ()Ljavax/net/ssl/SSLParameters;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.sslParameters:Ljavax/net/ssl/SSLParameters;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/AsyncSSLDelegate;
static void logParams(javax.net.ssl.SSLParameters);
descriptor: (Ljavax/net/ssl/SSLParameters;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: invokestatic jdk.incubator.http.internal.common.Log.ssl:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 5
3: ldc "SSLParameters: Null params"
iconst_0
anewarray java.lang.Object
invokestatic jdk.incubator.http.internal.common.Log.logSSL:(Ljava/lang/String;[Ljava/lang/Object;)V
4: return
5: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "SSLParameters:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 6: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 7: aload 0
invokevirtual javax.net.ssl.SSLParameters.getCipherSuites:()[Ljava/lang/String;
ifnull 15
8: aload 0
invokevirtual javax.net.ssl.SSLParameters.getCipherSuites:()[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 14
StackMap locals: javax.net.ssl.SSLParameters java.lang.StringBuilder java.util.List top int int java.lang.String[]
StackMap stack:
9: aload 6
iload 4
aaload
astore 3
start local 3 10: aload 1
ldc "\n cipher: {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 2
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
iload 5
if_icmplt 9
15: StackMap locals: javax.net.ssl.SSLParameters java.lang.StringBuilder java.util.List
StackMap stack:
aload 0
invokevirtual javax.net.ssl.SSLParameters.getApplicationProtocols:()[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 21
StackMap locals: javax.net.ssl.SSLParameters java.lang.StringBuilder java.util.List top int int java.lang.String[]
StackMap stack:
16: aload 6
iload 4
aaload
astore 3
start local 3 17: aload 1
ldc "\n application protocol: {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
18: aload 2
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 20: iinc 4 1
StackMap locals:
StackMap stack:
21: iload 4
iload 5
if_icmplt 16
22: aload 0
invokevirtual javax.net.ssl.SSLParameters.getProtocols:()[Ljava/lang/String;
ifnull 30
23: aload 0
invokevirtual javax.net.ssl.SSLParameters.getProtocols:()[Ljava/lang/String;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 29
StackMap locals:
StackMap stack:
24: aload 6
iload 4
aaload
astore 3
start local 3 25: aload 1
ldc "\n protocol: {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: aload 2
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 28: iinc 4 1
StackMap locals:
StackMap stack:
29: iload 4
iload 5
if_icmplt 24
30: StackMap locals: javax.net.ssl.SSLParameters java.lang.StringBuilder java.util.List
StackMap stack:
aload 0
invokevirtual javax.net.ssl.SSLParameters.getServerNames:()Ljava/util/List;
ifnull 37
31: aload 0
invokevirtual javax.net.ssl.SSLParameters.getServerNames:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 36
StackMap locals: javax.net.ssl.SSLParameters java.lang.StringBuilder java.util.List top java.util.Iterator
StackMap stack:
32: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.net.ssl.SNIServerName
astore 3
start local 3 33: aload 1
ldc "\n server name: {"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
34: aload 2
invokeinterface java.util.List.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
35: aload 2
aload 3
invokevirtual javax.net.ssl.SNIServerName.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 36: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
37: StackMap locals: javax.net.ssl.SSLParameters java.lang.StringBuilder java.util.List
StackMap stack:
aload 1
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
38: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
invokestatic jdk.incubator.http.internal.common.Log.logSSL:(Ljava/lang/String;[Ljava/lang/Object;)V
39: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 p Ljavax/net/ssl/SSLParameters;
6 40 1 sb Ljava/lang/StringBuilder;
7 40 2 params Ljava/util/List<Ljava/lang/Object;>;
10 13 3 cipher Ljava/lang/String;
17 20 3 approto Ljava/lang/String;
25 28 3 protocol Ljava/lang/String;
33 36 3 sname Ljavax/net/ssl/SNIServerName;
MethodParameters:
Name Flags
p
java.lang.String getSessionInfo();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=2, locals=6, 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 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getApplicationProtocol:()Ljava/lang/String;
astore 2
start local 2 2: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
astore 3
start local 3 3: aload 3
invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
astore 4
start local 4 4: aload 3
invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
astore 5
start local 5 5: aload 1
ldc "Handshake complete alpn: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc ", Cipher: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc ", Protocol: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
10: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/incubator/http/AsyncSSLDelegate;
1 12 1 sb Ljava/lang/StringBuilder;
2 12 2 application Ljava/lang/String;
3 12 3 sess Ljavax/net/ssl/SSLSession;
4 12 4 cipher Ljava/lang/String;
5 12 5 protocol Ljava/lang/String;
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.incubator.http.AsyncSSLDelegate.$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.incubator.http.AsyncSSLDelegate.$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
static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.incubator.http.AsyncSSLDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic javax.net.ssl.SSLEngineResult$Status.values:()[Ljavax/net/ssl/SSLEngineResult$Status;
arraylength
newarray 10
astore 0
2: aload 0
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.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$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_1
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$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_4
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$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic jdk.incubator.http.AsyncSSLDelegate.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[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
private void lambda$3(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=3, args_size=2
start local 0 0: aload 0
aload 1
invokevirtual jdk.incubator.http.AsyncSSLDelegate.doHandshakeNow:(Ljava/lang/String;)V
1: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 2
start local 2 3: ldc "{0}: handshake failed: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: aload 0
aload 2
invokevirtual jdk.incubator.http.AsyncSSLDelegate.closeExceptionally:(Ljava/lang/Throwable;)V
5: aload 0
getfield jdk.incubator.http.AsyncSSLDelegate.errorHandler:Ljava/util/function/Consumer;
aload 2
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 2 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/AsyncSSLDelegate;
3 6 2 t Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
private static void lambda$4(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.Runnable.run:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 task Ljava/lang/Runnable;
}
SourceFile: "AsyncSSLDelegate.java"
NestMembers:
jdk.incubator.http.AsyncSSLDelegate$EngineResult
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult
EngineResult = jdk.incubator.http.AsyncSSLDelegate$EngineResult of jdk.incubator.http.AsyncSSLDelegate