public class jdk.internal.net.http.frame.FramesDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.net.http.frame.FramesDecoder
super_class: java.lang.Object
{
static final jdk.internal.net.http.common.Logger debug;
descriptor: Ljdk/internal/net/http/common/Logger;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private final jdk.internal.net.http.frame.FramesDecoder$FrameProcessor frameProcessor;
descriptor: Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxFrameSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.ByteBuffer currentBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private final java.util.ArrayDeque<java.nio.ByteBuffer> tailBuffers;
descriptor: Ljava/util/ArrayDeque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayDeque<Ljava/nio/ByteBuffer;>;
private int tailSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean slicedToDataFrame;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.List<java.nio.ByteBuffer> prepareToRelease;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/nio/ByteBuffer;>;
private boolean ;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int frameLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int frameType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int frameFlags;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int frameStreamid;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final int COPY_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Ljdk/internal/net/http/frame/FramesDecoder;
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.frame.FramesDecoder.$assertionsDisabled:Z
3: ldc "FramesDecoder"
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Ljava/lang/String;)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;
java/lang/String.toString()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;
4: putstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.internal.net.http.frame.FramesDecoder$FrameProcessor);
descriptor: (Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
sipush 16384
invokespecial jdk.internal.net.http.frame.FramesDecoder.<init>:(Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 2 1 frameProcessor Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;
MethodParameters:
Name Flags
frameProcessor
public void <init>(jdk.internal.net.http.frame.FramesDecoder$FrameProcessor, int);
descriptor: (Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield jdk.internal.net.http.frame.FramesDecoder.tailBuffers:Ljava/util/ArrayDeque;
2: aload 0
iconst_0
putfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
3: aload 0
iconst_0
putfield jdk.internal.net.http.frame.FramesDecoder.slicedToDataFrame:Z
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield jdk.internal.net.http.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
5: aload 0
iconst_0
putfield jdk.internal.net.http.frame.FramesDecoder.frameHeaderParsed:Z
6: aload 0
aload 1
putfield jdk.internal.net.http.frame.FramesDecoder.frameProcessor:Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;
7: aload 0
sipush 16384
iload 2
invokestatic java.lang.Math.max:(II)I
ldc 16777215
invokestatic java.lang.Math.min:(II)I
putfield jdk.internal.net.http.frame.FramesDecoder.maxFrameSize:I
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 9 1 frameProcessor Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;
0 9 2 maxFrameSize I
MethodParameters:
Name Flags
frameProcessor
maxFrameSize
public void decode(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.closed:Z
ifeq 7
1: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 5
2: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "closed: ignoring buffer (%s bytes)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
4: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
6: return
7: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 8: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 9
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "decodes: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
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
9: StackMap locals: int
StackMap stack:
iload 2
ifle 31
10: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
ifnonnull 13
11: aload 0
aload 1
putfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
12: goto 31
13: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
astore 3
start local 3 14: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailBuffers:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.isEmpty:()Z
ifne 16
15: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailBuffers:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.getLast:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 3
16: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
invokevirtual java.nio.ByteBuffer.limit:()I
istore 4
start local 4 17: aload 3
invokevirtual java.nio.ByteBuffer.capacity:()I
iload 4
isub
istore 5
start local 5 18: iload 2
sipush 8192
if_icmpgt 28
iload 5
iload 2
if_icmplt 28
19: aload 3
invokevirtual java.nio.ByteBuffer.position:()I
istore 6
start local 6 20: aload 3
iload 4
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
21: aload 3
iload 4
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
22: aload 3
aload 1
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
23: aload 3
iload 6
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
24: aload 3
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
if_acmpeq 26
25: aload 0
dup
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
iload 2
iadd
putfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
26: StackMap locals: int int int
StackMap stack:
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 31
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "copied: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
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
end local 6 27: goto 31
28: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 29
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "added: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
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
29: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailBuffers:Ljava/util/ArrayDeque;
aload 1
invokevirtual java.util.ArrayDeque.add:(Ljava/lang/Object;)Z
pop
30: aload 0
dup
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
iload 2
iadd
putfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
end local 5 end local 4 end local 3 31: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 41
32: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "Tail size is now: %d, current="
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
33: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
ifnonnull 34
iconst_0
goto 35
StackMap locals: jdk.internal.net.http.frame.FramesDecoder java.nio.ByteBuffer int
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
34: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
StackMap locals: jdk.internal.net.http.frame.FramesDecoder java.nio.ByteBuffer int
StackMap stack: jdk.internal.net.http.common.Logger java.lang.String java.lang.Object[] java.lang.Object[] int int
35: invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
36: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
37: goto 41
start local 3 38: StackMap locals: jdk.internal.net.http.frame.Http2Frame
StackMap stack:
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 39
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "Got frame: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
39: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameProcessor:Ljdk/internal/net/http/frame/FramesDecoder$FrameProcessor;
aload 3
invokeinterface jdk.internal.net.http.frame.FramesDecoder$FrameProcessor.processFrame:(Ljdk/internal/net/http/frame/Http2Frame;)V
40: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.frameProcessed:()V
end local 3 41: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextFrame:()Ljdk/internal/net/http/frame/Http2Frame;
dup
astore 3
start local 3 42: ifnonnull 38
43: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 44 1 inBoundBuffer Ljava/nio/ByteBuffer;
8 44 2 remaining I
14 31 3 b Ljava/nio/ByteBuffer;
17 31 4 limit I
18 31 5 freeSpace I
20 27 6 position I
38 41 3 frame Ljdk/internal/net/http/frame/Http2Frame;
42 44 3 frame Ljdk/internal/net/http/frame/Http2Frame;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
inBoundBuffer
private jdk.internal.net.http.frame.Http2Frame nextFrame();
descriptor: ()Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
iadd
i2l
lstore 1
start local 1 3: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameHeaderParsed:Z
ifne 21
4: lload 1
ldc 9
lcmp
iflt 16
5: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseFrameHeader:()V
6: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.maxFrameSize:I
if_icmple 14
7: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
8: new java.lang.StringBuilder
dup
ldc "Frame type("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameType:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "length("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
10: ldc ") exceeds MAX_FRAME_SIZE("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.maxFrameSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
14: StackMap locals: long
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.frame.FramesDecoder.frameHeaderParsed:Z
15: goto 21
16: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 20
17: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "Not enough data to parse header, needs: %d, has: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
18: bipush 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
19: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
aconst_null
areturn
21: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
ifnonnull 22
iconst_0
goto 23
StackMap locals:
StackMap stack:
22: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
iadd
StackMap locals:
StackMap stack: int
23: i2l
lstore 1
24: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
ifeq 26
25: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
ifnull 30
lload 1
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
i2l
lcmp
iflt 30
26: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseFrameBody:()Ljdk/internal/net/http/frame/Http2Frame;
astore 3
start local 3 27: aload 0
iconst_0
putfield jdk.internal.net.http.frame.FramesDecoder.frameHeaderParsed:Z
28: aload 3
ifnull 0
29: aload 3
areturn
end local 3 30: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 34
31: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "Not enough data to parse frame body, needs: %d, has: %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
32: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
33: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
34: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljdk/internal/net/http/frame/FramesDecoder;
3 35 1 available J
27 30 3 frame Ljdk/internal/net/http/frame/Http2Frame;
Exceptions:
throws java.io.IOException
private void frameProcessed();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
invokeinterface java.util.List.clear:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/frame/FramesDecoder;
private void ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
istore 1
start local 1 1: aload 0
iload 1
bipush 8
iushr
ldc 16777215
iand
putfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
2: aload 0
iload 1
sipush 255
iand
putfield jdk.internal.net.http.frame.FramesDecoder.frameType:I
3: aload 0
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
putfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
4: aload 0
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
putfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/frame/FramesDecoder;
1 6 1 x I
Exceptions:
throws java.io.IOException
private void nextBuffer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 7
1: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.slicedToDataFrame:Z
ifne 3
2: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield jdk.internal.net.http.frame.FramesDecoder.slicedToDataFrame:Z
4: aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailBuffers:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.poll:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
putfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
5: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
ifnull 7
6: aload 0
dup
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
putfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/frame/FramesDecoder;
public int getByte();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 1
start local 1 1: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextBuffer:()V
2: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/frame/FramesDecoder;
1 3 1 res I
public int getShort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmplt 4
1: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getShort:()S
ldc 65535
iand
istore 1
start local 1 2: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextBuffer:()V
3: iload 1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 1
start local 1 5: iload 1
bipush 8
ishl
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
iadd
istore 1
6: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/frame/FramesDecoder;
2 4 1 res I
5 7 1 val I
public int getInt();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_4
if_icmplt 4
1: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 1
start local 1 2: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextBuffer:()V
3: iload 1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 1
start local 1 5: iload 1
bipush 8
ishl
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
iadd
istore 1
6: iload 1
bipush 8
ishl
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
iadd
istore 1
7: iload 1
bipush 8
ishl
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
iadd
istore 1
8: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/frame/FramesDecoder;
2 4 1 res I
5 9 1 val I
public byte[] getBytes(int);
descriptor: (I)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: iload 1
newarray 8
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 8
3: StackMap locals: byte[] int
StackMap stack:
iload 1
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 4: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
aload 2
iload 3
iload 4
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
5: iload 3
iload 4
iadd
istore 3
6: iload 1
iload 4
isub
istore 1
7: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextBuffer:()V
end local 4 8: StackMap locals:
StackMap stack:
iload 1
ifgt 3
9: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 10 1 n I
1 10 2 bytes [B
2 10 3 offset I
4 8 4 length I
MethodParameters:
Name Flags
n
private java.util.List<java.nio.ByteBuffer> getBuffers(boolean, int);
descriptor: (ZI)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: goto 14
2: StackMap locals: java.util.List
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 3: iload 4
iload 2
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 4: iload 1
ifeq 10
5: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
iload 5
invokestatic jdk.internal.net.http.common.Utils.sliceWithLimitedCapacity:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
6: invokevirtual java.nio.ByteBuffer.asReadOnlyBuffer:()Ljava/nio/ByteBuffer;
7: astore 6
start local 6 8: aload 0
iconst_1
putfield jdk.internal.net.http.frame.FramesDecoder.slicedToDataFrame:Z
9: goto 11
end local 6 10: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
iload 5
invokestatic jdk.internal.net.http.common.Utils.sliceWithLimitedCapacity:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
astore 6
start local 6 11: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: iload 2
iload 5
isub
istore 2
13: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextBuffer:()V
end local 6 end local 5 end local 4 14: StackMap locals:
StackMap stack:
iload 2
ifgt 2
15: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 16 1 isDataFrame Z
0 16 2 bytecount I
1 16 3 res Ljava/util/List<Ljava/nio/ByteBuffer;>;
3 14 4 remaining I
4 14 5 extract I
8 10 6 extractedBuf Ljava/nio/ByteBuffer;
11 14 6 extractedBuf Ljava/nio/ByteBuffer;
Signature: (ZI)Ljava/util/List<Ljava/nio/ByteBuffer;>;
MethodParameters:
Name Flags
isDataFrame
bytecount
public void close(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield jdk.internal.net.http.frame.FramesDecoder.closed:Z
1: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailBuffers:Ljava/util/ArrayDeque;
invokevirtual java.util.ArrayDeque.clear:()V
2: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
istore 2
start local 2 3: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
astore 3
start local 3 4: aload 3
ifnull 7
5: iload 2
aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
istore 2
6: aload 3
aload 3
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
7: StackMap locals: int java.nio.ByteBuffer
StackMap stack:
aload 0
iconst_0
putfield jdk.internal.net.http.frame.FramesDecoder.tailSize:I
8: aload 0
aconst_null
putfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
9: getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 10
getstatic jdk.internal.net.http.frame.FramesDecoder.debug:Ljdk/internal/net/http/common/Logger;
ldc "closed %s, ignoring %d bytes"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
iload 2
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
10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 11 1 msg Ljava/lang/String;
3 11 2 bytes I
4 11 3 b Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
msg
public void skipBytes(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: goto 6
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 2: iload 2
iload 1
invokestatic java.lang.Math.min:(II)I
istore 3
start local 3 3: aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
iload 3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
4: iload 1
iload 2
isub
istore 1
5: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.nextBuffer:()V
end local 3 end local 2 6: StackMap locals:
StackMap stack:
iload 1
ifgt 1
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 8 1 bytecount I
2 6 2 remaining I
3 6 3 extract I
MethodParameters:
Name Flags
bytecount
private jdk.internal.net.http.frame.Http2Frame parseFrameBody();
descriptor: ()Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.net.http.frame.FramesDecoder.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameHeaderParsed: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.frame.FramesDecoder.frameType:I
tableswitch { // 0 - 9
0: 2
1: 3
2: 4
3: 5
4: 6
5: 7
6: 8
7: 9
8: 10
9: 11
default: 12
}
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseDataFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseHeadersFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parsePriorityFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseResetFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseSettingsFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parsePushPromiseFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parsePingFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseGoAwayFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseWindowUpdateFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.parseContinuationFrame:(III)Ljdk/internal/net/http/frame/Http2Frame;
areturn
12: StackMap locals:
StackMap stack:
ldc "Unknown incoming frame type: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
13: aload 0
aload 0
getfield jdk.internal.net.http.frame.FramesDecoder.frameLength:I
invokevirtual jdk.internal.net.http.frame.FramesDecoder.skipBytes:(I)V
14: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/internal/net/http/frame/FramesDecoder;
Exceptions:
throws java.io.IOException
private jdk.internal.net.http.frame.Http2Frame parseDataFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for DataFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 5: iload 3
bipush 8
iand
ifeq 12
6: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 4
7: iload 4
iload 1
if_icmplt 11
8: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
9: ldc "the length of the padding is the length of the frame payload or greater"
10: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
11: StackMap locals: int
StackMap stack:
iinc 1 -1
12: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.DataFrame
dup
iload 2
iload 3
13: aload 0
iconst_1
iload 1
iload 4
isub
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getBuffers:(ZI)Ljava/util/List;
iload 4
14: invokespecial jdk.internal.net.http.frame.DataFrame.<init>:(IILjava/util/List;I)V
astore 5
start local 5 15: aload 0
iload 4
invokevirtual jdk.internal.net.http.frame.FramesDecoder.skipBytes:(I)V
16: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 17 1 frameLength I
0 17 2 streamid I
0 17 3 flags I
5 17 4 padLength I
15 17 5 df Ljdk/internal/net/http/frame/DataFrame;
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame (int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for HeadersFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 5: iload 3
bipush 8
iand
ifeq 8
6: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 4
7: iinc 1 -1
8: StackMap locals: int
StackMap stack:
iload 3
bipush 32
iand
ifeq 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 5
start local 5 11: iconst_0
istore 6
start local 6 12: iconst_0
istore 7
start local 7 13: iconst_0
istore 8
start local 8 14: iload 5
ifeq 22
15: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
istore 9
start local 9 16: iload 9
ldc -2147483648
iand
ifeq 17
iconst_1
goto 18
StackMap locals: jdk.internal.net.http.frame.FramesDecoder int int int int int int int int int
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 6
19: iload 9
ldc 2147483647
iand
istore 7
20: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 8
21: iinc 1 -5
end local 9 22: StackMap locals:
StackMap stack:
iload 1
iload 4
if_icmpge 26
23: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
24: ldc "Padding exceeds the size remaining for the header block"
25: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
26: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.HeadersFrame
dup
iload 2
iload 3
27: aload 0
iconst_0
iload 1
iload 4
isub
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getBuffers:(ZI)Ljava/util/List;
iload 4
28: invokespecial jdk.internal.net.http.frame.HeadersFrame.<init>:(IILjava/util/List;I)V
astore 9
start local 9 29: aload 0
iload 4
invokevirtual jdk.internal.net.http.frame.FramesDecoder.skipBytes:(I)V
30: iload 5
ifeq 32
31: aload 9
iload 7
iload 6
iload 8
invokevirtual jdk.internal.net.http.frame.HeadersFrame.setPriority:(IZI)V
32: StackMap locals: jdk.internal.net.http.frame.HeadersFrame
StackMap stack:
aload 9
areturn
end local 9 end local 8 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 33 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 33 1 frameLength I
0 33 2 streamid I
0 33 3 flags I
5 33 4 padLength I
11 33 5 hasPriority Z
12 33 6 exclusive Z
13 33 7 streamDependency I
14 33 8 weight I
16 22 9 x I
29 33 9 hf Ljdk/internal/net/http/frame/HeadersFrame;
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parsePriorityFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for PriorityFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
iconst_5
if_icmpeq 9
5: aload 0
iload 1
invokevirtual jdk.internal.net.http.frame.FramesDecoder.skipBytes:(I)V
6: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
iload 2
7: new java.lang.StringBuilder
dup
ldc "PriorityFrame length is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", expected 5"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(IILjava/lang/String;)V
areturn
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
istore 4
start local 4 10: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 5
start local 5 11: new jdk.internal.net.http.frame.PriorityFrame
dup
iload 2
iload 4
ldc 2147483647
iand
iload 4
ldc -2147483648
iand
ifeq 12
iconst_1
goto 13
StackMap locals: jdk.internal.net.http.frame.FramesDecoder int int int int int
StackMap stack: new 11 new 11 int int
12: iconst_0
StackMap locals: jdk.internal.net.http.frame.FramesDecoder int int int int int
StackMap stack: new 11 new 11 int int int
13: iload 5
invokespecial jdk.internal.net.http.frame.PriorityFrame.<init>:(IIZI)V
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 14 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 14 1 frameLength I
0 14 2 streamid I
0 14 3 flags I
10 14 4 x I
11 14 5 weight I
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parseResetFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for ResetFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
iconst_4
if_icmpeq 8
5: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
6: new java.lang.StringBuilder
dup
ldc "ResetFrame length is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", expected 4"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.ResetFrame
dup
iload 2
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
invokespecial jdk.internal.net.http.frame.ResetFrame.<init>:(II)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 9 1 frameLength I
0 9 2 streamid I
0 9 3 flags I
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parseSettingsFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifeq 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "non-zero streamId for SettingsFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iconst_1
iload 3
iand
ifeq 8
iload 1
ifle 8
5: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
6: ldc "ACK SettingsFrame is not empty"
7: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
iload 1
bipush 6
irem
ifeq 12
9: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
10: new java.lang.StringBuilder
dup
ldc "invalid SettingsFrame size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
12: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.SettingsFrame
dup
iload 3
invokespecial jdk.internal.net.http.frame.SettingsFrame.<init>:(I)V
astore 4
start local 4 13: iload 1
bipush 6
idiv
istore 5
start local 5 14: iconst_0
istore 6
start local 6 15: goto 21
16: StackMap locals: jdk.internal.net.http.frame.SettingsFrame int int
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getShort:()I
istore 7
start local 7 17: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
istore 8
start local 8 18: iload 7
ifle 20
iload 7
bipush 6
if_icmpgt 20
19: aload 4
iload 7
iload 8
invokevirtual jdk.internal.net.http.frame.SettingsFrame.setParameter:(II)Ljdk/internal/net/http/frame/SettingsFrame;
pop
end local 8 end local 7 20: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
21: iload 6
iload 5
if_icmplt 16
end local 6 22: aload 4
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 23 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 23 1 frameLength I
0 23 2 streamid I
0 23 3 flags I
13 23 4 sf Ljdk/internal/net/http/frame/SettingsFrame;
14 23 5 n I
15 22 6 i I
17 20 7 id I
18 20 8 val I
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parsePushPromiseFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for PushPromiseFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 5: iload 3
bipush 8
iand
ifeq 8
6: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getByte:()I
istore 4
7: iinc 1 -1
8: StackMap locals: int
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
istore 5
start local 5 9: iinc 1 -4
10: iload 1
iload 4
if_icmpge 14
11: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
12: ldc "Padding exceeds the size remaining for the PushPromiseFrame"
13: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
14: StackMap locals: int
StackMap stack:
new jdk.internal.net.http.frame.PushPromiseFrame
dup
iload 2
iload 3
iload 5
15: aload 0
iconst_0
iload 1
iload 4
isub
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getBuffers:(ZI)Ljava/util/List;
iload 4
16: invokespecial jdk.internal.net.http.frame.PushPromiseFrame.<init>:(IIILjava/util/List;I)V
astore 6
start local 6 17: aload 0
iload 4
invokevirtual jdk.internal.net.http.frame.FramesDecoder.skipBytes:(I)V
18: aload 6
areturn
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 19 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 19 1 frameLength I
0 19 2 streamid I
0 19 3 flags I
5 19 4 padLength I
9 19 5 promisedStream I
17 19 6 ppf Ljdk/internal/net/http/frame/PushPromiseFrame;
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parsePingFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifeq 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "non-zero streamId for PingFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
bipush 8
if_icmpeq 8
5: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
6: new java.lang.StringBuilder
dup
ldc "PingFrame length is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", expected 8"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.PingFrame
dup
iload 3
aload 0
bipush 8
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getBytes:(I)[B
invokespecial jdk.internal.net.http.frame.PingFrame.<init>:(I[B)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 9 1 frameLength I
0 9 2 streamid I
0 9 3 flags I
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parseGoAwayFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifeq 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "non-zero streamId for GoAwayFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
bipush 8
if_icmpge 8
5: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
6: ldc "Invalid GoAway frame size"
7: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
istore 4
start local 4 9: aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
istore 5
start local 5 10: aload 0
iload 1
bipush 8
isub
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getBytes:(I)[B
astore 6
start local 6 11: aload 6
arraylength
ifle 13
12: new java.lang.StringBuilder
dup
ldc "GoAway debugData "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
new java.lang.String
dup
aload 6
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
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.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals: int int byte[]
StackMap stack:
new jdk.internal.net.http.frame.GoAwayFrame
dup
iload 4
iload 5
aload 6
invokespecial jdk.internal.net.http.frame.GoAwayFrame.<init>:(II[B)V
areturn
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 14 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 14 1 frameLength I
0 14 2 streamid I
0 14 3 flags I
9 14 4 lastStream I
10 14 5 errorCode I
11 14 6 debugData [B
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parseWindowUpdateFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iconst_4
if_icmpeq 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
bipush 6
2: new java.lang.StringBuilder
dup
ldc "WindowUpdateFrame length is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", expected 4"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.WindowUpdateFrame
dup
iload 2
aload 0
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
invokespecial jdk.internal.net.http.frame.WindowUpdateFrame.<init>:(II)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 5 1 frameLength I
0 5 2 streamid I
0 5 3 flags I
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.internal.net.http.frame.Http2Frame parseContinuationFrame(int, int, int);
descriptor: (III)Ljdk/internal/net/http/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifne 4
1: new jdk.internal.net.http.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for ContinuationFrame"
3: invokespecial jdk.internal.net.http.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
new jdk.internal.net.http.frame.ContinuationFrame
dup
iload 2
iload 3
aload 0
iconst_0
iload 1
invokevirtual jdk.internal.net.http.frame.FramesDecoder.getBuffers:(ZI)Ljava/util/List;
invokespecial jdk.internal.net.http.frame.ContinuationFrame.<init>:(IILjava/util/List;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/frame/FramesDecoder;
0 5 1 frameLength I
0 5 2 streamid I
0 5 3 flags I
MethodParameters:
Name Flags
frameLength
streamid
flags
}
SourceFile: "FramesDecoder.java"
NestMembers:
jdk.internal.net.http.frame.FramesDecoder$FrameProcessor
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract FrameProcessor = jdk.internal.net.http.frame.FramesDecoder$FrameProcessor of jdk.internal.net.http.frame.FramesDecoder