final class jdk.internal.net.http.common.SSLFlowDelegate$Reader extends jdk.internal.net.http.common.SubscriberWrapper implements jdk.internal.net.http.common.FlowTube$TubeSubscriber
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.internal.net.http.common.SSLFlowDelegate$Reader
super_class: jdk.internal.net.http.common.SubscriberWrapper
{
static final int TARGET_BUFSIZE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16384
final jdk.internal.net.http.common.SequentialScheduler scheduler;
descriptor: Ljdk/internal/net/http/common/SequentialScheduler;
flags: (0x0010) ACC_FINAL
volatile java.nio.ByteBuffer readBuf;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0040) ACC_VOLATILE
volatile boolean completing;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
final java.lang.Object readBufferLock;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.common.Logger debugr;
descriptor: Ljdk/internal/net/http/common/Logger;
flags: (0x0010) ACC_FINAL
java.util.concurrent.atomic.AtomicInteger count;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0000)
volatile int minBytesRequired;
descriptor: I
flags: (0x0040) ACC_VOLATILE
private volatile javax.net.ssl.SSLEngineResult$Status lastUnwrapStatus;
descriptor: Ljavax/net/ssl/SSLEngineResult$Status;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final jdk.internal.net.http.common.SSLFlowDelegate this$0;
descriptor: Ljdk/internal/net/http/common/SSLFlowDelegate;
flags: (0x1010) ACC_FINAL, 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/internal/net/http/common/SSLFlowDelegate;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.internal.net.http.common.SSLFlowDelegate$Reader.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(jdk.internal.net.http.common.SSLFlowDelegate);
descriptor: (Ljdk/internal/net/http/common/SSLFlowDelegate;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
1: aload 0
invokespecial jdk.internal.net.http.common.SubscriberWrapper.<init>:()V
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBufferLock:Ljava/lang/Object;
3: aload 0
aload 0
invokedynamic get(Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;)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$Reader.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$Reader.debugr:Ljdk/internal/net/http/common/Logger;
4: 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$Reader.count:Ljava/util/concurrent/atomic/AtomicInteger;
5: aload 0
6: new jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher
dup
aload 0
invokespecial jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher.<init>:(Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;)V
7: invokestatic jdk.internal.net.http.common.SequentialScheduler.synchronizedScheduler:(Ljava/lang/Runnable;)Ljdk/internal/net/http/common/SequentialScheduler;
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
8: aload 0
sipush 1024
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
9: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
MethodParameters:
Name Flags
this$0 final
public boolean supportsRecycling();
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.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.recycler:Ljava/util/function/Consumer;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
protected jdk.internal.net.http.common.SubscriberWrapper$SchedulingAction enterScheduling();
descriptor: ()Ljdk/internal/net/http/common/SubscriberWrapper$SchedulingAction;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.enterReadScheduling:()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$Reader;
public final java.lang.String dbgString();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "SSL Reader("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
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$Reader;
public void incoming(java.util.List<java.nio.ByteBuffer>, );
descriptor: (Ljava/util/List;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, 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.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 4
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "Adding %d bytes to read buffer"
iconst_1
anewarray java.lang.Object
dup
iconst_0
2: aload 1
invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
3: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.addToReadBuf:(Ljava/util/List;Z)V
5: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.exec:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:(Ljava/util/concurrent/Executor;)V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
0 7 1 buffers Ljava/util/List<Ljava/nio/ByteBuffer;>;
0 7 2 complete Z
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;Z)V
MethodParameters:
Name Flags
buffers
complete
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "READER: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokespecial jdk.internal.net.http.common.SubscriberWrapper.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", readBuf: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc ", count: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.count:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", scheduler: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 3
ldc "stopped"
goto 4
StackMap locals:
StackMap stack: java.lang.StringBuilder
3: ldc "running"
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader
StackMap stack: java.lang.StringBuilder java.lang.String
4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc ", status: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.lastUnwrapStatus:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
6: ldc ", handshakeState: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
7: ldc ", engine: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
8: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
private void reallocReadBuf();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
istore 1
start local 1 1: iload 1
iconst_2
imul
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
3: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
aload 2
invokestatic jdk.internal.net.http.common.Utils.copy:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
pop
4: aload 0
aload 2
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
1 6 1 sz I
2 6 2 newb Ljava/nio/ByteBuffer;
protected long upstreamWindowUpdate(long, long);
descriptor: (JJ)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.needsMoreData:()Z
ifeq 8
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 7
2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5
start local 5 3: iload 5
sipush 16384
if_icmple 7
4: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "readBuf has more than TARGET_BUFSIZE: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 5 7: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
8: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
0 9 1 currentWindow J
0 9 3 downstreamQsize J
3 7 5 remaining I
MethodParameters:
Name Flags
currentWindow
downstreamQsize
private void addToReadBuf(java.util.List<java.nio.ByteBuffer>, );
descriptor: (Ljava/util/List;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.internal.net.http.common.SSLFlowDelegate$Reader.$assertionsDisabled:Z
ifne 1
aload 1
invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;)J
lconst_0
lcmp
ifgt 1
aload 1
invokeinterface java.util.List.isEmpty:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 11
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader java.util.List int java.lang.Object top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 4
start local 4 4: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
5: goto 7
6: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader java.util.List int java.lang.Object java.nio.ByteBuffer java.util.Iterator
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.reallocReadBuf:()V
7: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmplt 6
8: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
aload 4
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
9: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
10: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.recycler:Ljava/util/function/Consumer;
ifnull 11
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.recycler:Ljava/util/function/Consumer;
aload 4
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 4 11: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader java.util.List int java.lang.Object top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
12: iload 2
ifeq 15
13: aload 0
iload 2
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.completing:Z
14: aload 0
iconst_0
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.minBytesRequired:I
15: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader java.util.List int java.lang.Object
StackMap stack:
aload 3
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 3
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
0 20 1 buffers Ljava/util/List<Ljava/nio/ByteBuffer;>;
0 20 2 complete Z
4 11 4 buf Ljava/nio/ByteBuffer;
Exception table:
from to target type
2 16 17 any
17 18 17 any
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;Z)V
MethodParameters:
Name Flags
buffers
complete
protected boolean errorCommon(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.checkForHandshake:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 1
1: aload 0
aload 1
invokespecial jdk.internal.net.http.common.SubscriberWrapper.errorCommon:(Ljava/lang/Throwable;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
0 2 1 throwable Ljava/lang/Throwable;
MethodParameters:
Name Flags
throwable
void schedule();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.exec:Ljava/util/concurrent/Executor;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:(Ljava/util/concurrent/Executor;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
void stop();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr: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$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "stop"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.stop:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
boolean needsMoreData();
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$Reader.upstreamSubscription:Ljava/util/concurrent/Flow$Subscription;
ifnull 4
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.minBytesRequired:I
if_icmpgt 4
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
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_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpeq 3
2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.downstreamSubscription:Ljdk/internal/net/http/common/SubscriptionBase;
getfield jdk.internal.net.http.common.SubscriptionBase.demand:Ljdk/internal/net/http/common/Demand;
invokevirtual jdk.internal.net.http.common.Demand.isFulfilled:()Z
ifne 4
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.hasNoOutputData:()Z
ifeq 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
void requestMoreDataIfNeeded();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.needsMoreData:()Z
ifeq 2
1: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.requestMore:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
final void processData();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 6
1: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
new java.lang.StringBuilder
dup
ldc "processData: readBuf remaining:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
3: ldc ", state:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
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;
4: ldc ", engine handshake status:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 7: goto 72
start local 1 8: StackMap locals: int int
StackMap stack:
iconst_0
istore 3
start local 3 9: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBufferLock:Ljava/lang/Object;
dup
astore 5
monitorenter
10: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.completing:Z
istore 2
11: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr: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$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "Unwrapping: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
12: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader int int int top java.lang.Object
StackMap stack:
iload 1
ifle 13
aload 0
iconst_0
dup_x1
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.minBytesRequired:I
goto 14
StackMap locals:
StackMap stack:
13: iload 1
StackMap locals:
StackMap stack: int
14: istore 1
15: aload 0
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.unwrapBuffer:(Ljava/nio/ByteBuffer;)Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
astore 4
start local 4 16: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 1
17: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 20
18: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "Unwrapped: result: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
getfield jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.result:Ljavax/net/ssl/SSLEngineResult;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
19: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "Unwrapped: consumed: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesConsumed:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
20: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader int int int jdk.internal.net.http.common.SSLFlowDelegate$EngineResult java.lang.Object
StackMap stack:
aload 5
monitorexit
21: goto 24
end local 4 StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader int int int top java.lang.Object
StackMap stack: java.lang.Throwable
22: aload 5
monitorexit
23: athrow
start local 4 24: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader int int int jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
StackMap stack:
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
ifle 29
25: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 27
26: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "sending %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
27: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.count:Ljava/util/concurrent/atomic/AtomicInteger;
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
invokevirtual java.util.concurrent.atomic.AtomicInteger.addAndGet:(I)I
pop
28: aload 0
aload 4
getfield jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.destBuffer:Ljava/nio/ByteBuffer;
iconst_0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.outgoing:(Ljava/nio/ByteBuffer;Z)V
29: StackMap locals:
StackMap stack:
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.status:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 50
30: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 31
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "BUFFER_UNDERFLOW"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBufferLock:Ljava/lang/Object;
dup
astore 5
monitorenter
32: aload 0
iload 1
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.minBytesRequired:I
33: getstatic jdk.internal.net.http.common.SSLFlowDelegate$Reader.$assertionsDisabled:Z
ifne 34
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 1
if_icmpge 34
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
34: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 1
if_icmple 36
aload 5
monitorexit
35: goto 72
36: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.completing:Z
ifeq 44
37: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 41
38: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "BUFFER_UNDERFLOW with EOF, %d bytes non decrypted."
iconst_1
anewarray java.lang.Object
dup
iconst_0
39: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
40: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
41: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "BUFFER_UNDERFLOW with EOF, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
42: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes non decrypted."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
43: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
aload 5
monitorexit
45: goto 48
StackMap locals:
StackMap stack: java.lang.Throwable
46: aload 5
monitorexit
47: athrow
48: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.requestMore:()V
49: return
50: StackMap locals:
StackMap stack:
iload 2
ifeq 56
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.status:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 56
51: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 52
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "Closed: completing"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
52: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.internal.net.http.common.Utils.EMPTY_BB_LIST:Ljava/util/List;
iconst_1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.outgoing:(Ljava/util/List;Z)V
53: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.setALPN:()V
54: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.requestMoreDataIfNeeded:()V
55: return
56: StackMap locals:
StackMap stack:
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.handshaking:()Z
ifeq 61
57: iconst_1
istore 3
58: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 59
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "handshaking"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
59: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
aload 4
iconst_1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.doHandshake:(Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;I)Z
ifeq 74
60: goto 72
61: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.trySetALPN:()Z
ifeq 69
62: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.resumeActivity:()V
end local 4 63: goto 69
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader int int int
StackMap stack: java.io.IOException
64: astore 4
start local 4 65: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
aload 4
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.checkForHandshake:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 5
start local 5 66: aload 0
aload 5
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.errorCommon:(Ljava/lang/Throwable;)Z
pop
67: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
aload 5
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.handleError:(Ljava/lang/Throwable;)V
68: return
end local 5 end local 4 69: StackMap locals:
StackMap stack:
iload 3
ifeq 72
iload 2
ifne 72
70: aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.requestMoreDataIfNeeded:()V
71: return
end local 3 end local 1 72: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader top int
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.minBytesRequired:I
dup
istore 1
start local 1 73: if_icmpgt 8
74: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader int int
StackMap stack:
iload 2
ifne 83
75: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
76: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.completing:Z
ifeq 77
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.readBuf:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 77
iconst_1
goto 78
StackMap locals: java.lang.Object
StackMap stack:
77: iconst_0
StackMap locals:
StackMap stack: int
78: istore 2
79: aload 3
monitorexit
80: goto 83
StackMap locals:
StackMap stack: java.lang.Throwable
81: aload 3
monitorexit
82: athrow
83: StackMap locals:
StackMap stack:
iload 2
ifeq 88
84: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 85
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
ldc "completing"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
85: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.setALPN:()V
86: aload 0
getstatic jdk.internal.net.http.common.Utils.EMPTY_BB_LIST:Ljava/util/List;
iconst_1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.outgoing:(Ljava/util/List;Z)V
87: goto 94
88: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.requestMoreDataIfNeeded:()V
end local 2 end local 1 89: goto 94
StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader
StackMap stack: java.lang.Throwable
90: astore 1
start local 1 91: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.checkForHandshake:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 1
92: aload 0
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Reader.errorCommon:(Ljava/lang/Throwable;)Z
pop
93: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
aload 1
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.handleError:(Ljava/lang/Throwable;)V
end local 1 94: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 95 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
8 72 1 len I
73 89 1 len I
7 89 2 complete Z
9 72 3 handshaking Z
16 22 4 result Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
24 63 4 result Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
65 69 4 ex Ljava/io/IOException;
66 69 5 cause Ljava/lang/Throwable;
91 94 1 ex Ljava/lang/Throwable;
Exception table:
from to target type
10 21 22 any
22 23 22 any
32 35 46 any
36 45 46 any
46 47 46 any
9 35 64 Class java.io.IOException
36 49 64 Class java.io.IOException
50 55 64 Class java.io.IOException
56 60 64 Class java.io.IOException
61 63 64 Class java.io.IOException
76 80 81 any
81 82 81 any
0 49 90 Class java.lang.Throwable
50 55 90 Class java.lang.Throwable
56 68 90 Class java.lang.Throwable
69 71 90 Class java.lang.Throwable
72 89 90 Class java.lang.Throwable
jdk.internal.net.http.common.SSLFlowDelegate$EngineResult unwrapBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
flags: (0x0000)
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.getAppBuffer:()Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 3
start local 3 2: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
aload 1
aload 2
invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 4
start local 4 3: invokestatic jdk.internal.net.http.common.SSLFlowDelegate$Reader.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
aload 0
aload 4
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
dup_x1
putfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.lastUnwrapStatus:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 14
2: 4
3: 16
4: 12
default: 26
}
4: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
5: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
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
6: dup_x1
putfield jdk.internal.net.http.common.SSLFlowDelegate.applicationBufferSize:I
istore 5
start local 5 7: iload 5
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
iadd
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 6
start local 6 8: aload 2
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
9: aload 6
aload 2
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
10: aload 6
astore 2
11: goto 2
end local 6 end local 5 12: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.common.SSLFlowDelegate$Reader.$assertionsDisabled:Z
ifne 13
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
ifeq 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
new jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
dup
aload 4
invokespecial jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;)V
invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.doClosure:(Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;)Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
areturn
14: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.common.SSLFlowDelegate$Reader.$assertionsDisabled:Z
ifne 15
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
ifeq 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
new jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
dup
aload 4
invokespecial jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;)V
areturn
16: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
istore 7
start local 7 17: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 22
18: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.debugr:Ljdk/internal/net/http/common/Logger;
new java.lang.StringBuilder
dup
ldc "Decoded "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes out of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
19: ldc " into buffer of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
20: ldc " remaining to decode: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
22: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader java.nio.ByteBuffer java.nio.ByteBuffer int javax.net.ssl.SSLEngineResult top top int
StackMap stack:
iload 7
aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
getfield jdk.internal.net.http.common.SSLFlowDelegate.adaptiveAppBufferSize:I
if_icmple 24
23: aload 0
getfield jdk.internal.net.http.common.SSLFlowDelegate$Reader.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
iload 7
bipush 7
iadd
iconst_3
iushr
iconst_3
ishl
putfield jdk.internal.net.http.common.SSLFlowDelegate.adaptiveAppBufferSize:I
24: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
25: new jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
dup
aload 4
aload 2
invokespecial jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;Ljava/nio/ByteBuffer;)V
areturn
end local 7 end local 4 26: StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Reader java.nio.ByteBuffer java.nio.ByteBuffer int
StackMap stack:
goto 2
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljdk/internal/net/http/common/SSLFlowDelegate$Reader;
0 27 1 src Ljava/nio/ByteBuffer;
1 27 2 dst Ljava/nio/ByteBuffer;
2 27 3 len I
3 26 4 sslResult Ljavax/net/ssl/SSLEngineResult;
7 12 5 appSize I
8 12 6 b Ljava/nio/ByteBuffer;
17 26 7 size I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
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.internal.net.http.common.SSLFlowDelegate$Reader.$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.internal.net.http.common.SSLFlowDelegate$Reader.$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
}
SourceFile: "SSLFlowDelegate.java"
NestHost: jdk.internal.net.http.common.SSLFlowDelegate
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
public abstract TubeSubscriber = jdk.internal.net.http.common.FlowTube$TubeSubscriber of jdk.internal.net.http.common.FlowTube
EngineResult = jdk.internal.net.http.common.SSLFlowDelegate$EngineResult of jdk.internal.net.http.common.SSLFlowDelegate
final Reader = jdk.internal.net.http.common.SSLFlowDelegate$Reader of jdk.internal.net.http.common.SSLFlowDelegate
private final ReaderDownstreamPusher = jdk.internal.net.http.common.SSLFlowDelegate$Reader$ReaderDownstreamPusher of jdk.internal.net.http.common.SSLFlowDelegate$Reader
public final SchedulingAction = jdk.internal.net.http.common.SubscriberWrapper$SchedulingAction of jdk.internal.net.http.common.SubscriberWrapper