public class jdk.incubator.http.internal.frame.FramesDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.incubator.http.internal.frame.FramesDecoder
super_class: java.lang.Object
{
private final jdk.incubator.http.internal.frame.FramesDecoder$FrameProcessor frameProcessor;
descriptor: Ljdk/incubator/http/internal/frame/FramesDecoder$FrameProcessor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxFrameSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.incubator.http.internal.common.ByteBufferReference currentBuffer;
descriptor: Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0002) ACC_PRIVATE
private final java.util.Queue<jdk.incubator.http.internal.common.ByteBufferReference> tailBuffers;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
private int tailSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean slicedToDataFrame;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.List<jdk.incubator.http.internal.common.ByteBufferReference> prepareToRelease;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
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
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.incubator.http.internal.frame.FramesDecoder$FrameProcessor);
descriptor: (Ljdk/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder.<init>:(Ljdk/incubator/http/internal/frame/FramesDecoder$FrameProcessor;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 2 1 frameProcessor Ljdk/incubator/http/internal/frame/FramesDecoder$FrameProcessor;
MethodParameters:
Name Flags
frameProcessor
public void <init>(jdk.incubator.http.internal.frame.FramesDecoder$FrameProcessor, int);
descriptor: (Ljdk/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder.tailBuffers:Ljava/util/Queue;
2: aload 0
iconst_0
putfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
3: aload 0
iconst_0
putfield jdk.incubator.http.internal.frame.FramesDecoder.slicedToDataFrame:Z
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield jdk.incubator.http.internal.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
5: aload 0
iconst_0
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameHeaderParsed:Z
6: aload 0
aload 1
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameProcessor:Ljdk/incubator/http/internal/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.incubator.http.internal.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/incubator/http/internal/frame/FramesDecoder;
0 9 1 frameProcessor Ljdk/incubator/http/internal/frame/FramesDecoder$FrameProcessor;
0 9 2 maxFrameSize I
MethodParameters:
Name Flags
frameProcessor
maxFrameSize
public void decode(jdk.incubator.http.internal.common.ByteBufferReference);
descriptor: (Ljdk/incubator/http/internal/common/ByteBufferReference;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2
start local 2 1: iload 2
ifle 10
2: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
ifnonnull 5
3: aload 0
aload 1
putfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
4: goto 10
5: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.tailBuffers:Ljava/util/Queue;
aload 1
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
6: aload 0
dup
getfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
iload 2
iadd
putfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
7: goto 10
start local 3 8: StackMap locals: jdk.incubator.http.internal.frame.Http2Frame
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameProcessor:Ljdk/incubator/http/internal/frame/FramesDecoder$FrameProcessor;
aload 3
invokeinterface jdk.incubator.http.internal.frame.FramesDecoder$FrameProcessor.processFrame:(Ljdk/incubator/http/internal/frame/Http2Frame;)V
9: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.frameProcessed:()V
end local 3 10: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextFrame:()Ljdk/incubator/http/internal/frame/Http2Frame;
dup
astore 3
start local 3 11: ifnonnull 8
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 13 1 buffer Ljdk/incubator/http/internal/common/ByteBufferReference;
1 13 2 remaining I
8 10 3 frame Ljdk/incubator/http/internal/frame/Http2Frame;
11 13 3 frame Ljdk/incubator/http/internal/frame/Http2Frame;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
private jdk.incubator.http.internal.frame.Http2Frame nextFrame();
descriptor: ()Ljdk/incubator/http/internal/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameHeaderParsed:Z
ifne 12
3: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
iadd
bipush 9
if_icmplt 11
4: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseFrameHeader:()V
5: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.maxFrameSize:I
if_icmple 9
6: new jdk.incubator.http.internal.frame.MalformedFrame
dup
bipush 6
7: new java.lang.StringBuilder
dup
ldc "Frame type("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.incubator.http.internal.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;
ldc "length("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") exceeds MAX_FRAME_SIZE("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.incubator.http.internal.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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
9: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameHeaderParsed:Z
10: goto 12
11: StackMap locals:
StackMap stack:
aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
ifeq 14
13: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
ifnull 18
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
iadd
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
if_icmplt 18
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseFrameBody:()Ljdk/incubator/http/internal/frame/Http2Frame;
astore 1
start local 1 15: aload 0
iconst_0
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameHeaderParsed:Z
16: aload 1
ifnull 0
17: aload 1
areturn
end local 1 18: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
15 18 1 frame Ljdk/incubator/http/internal/frame/Http2Frame;
Exceptions:
throws java.io.IOException
private void frameProcessed();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
invokedynamic accept()Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
jdk/incubator/http/internal/common/ByteBufferReference.clear()V (5)
(Ljdk/incubator/http/internal/common/ByteBufferReference;)V
invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
1: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
invokeinterface java.util.List.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder.getInt:()I
istore 1
start local 1 1: aload 0
iload 1
bipush 8
ishr
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
2: aload 0
iload 1
sipush 255
iand
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameType:I
3: aload 0
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
4: aload 0
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
putfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 7
1: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.slicedToDataFrame:Z
ifne 3
2: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.prepareToRelease:Ljava/util/List;
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield jdk.incubator.http.internal.frame.FramesDecoder.slicedToDataFrame:Z
4: aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.tailBuffers:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.ByteBufferReference
putfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
5: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
ifnull 7
6: aload 0
dup
getfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
isub
putfield jdk.incubator.http.internal.frame.FramesDecoder.tailSize:I
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
public int getByte();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 1
start local 1 1: aload 1
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 2
start local 2 2: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextBuffer:()V
3: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
1 4 1 buf Ljava/nio/ByteBuffer;
2 4 2 res I
public int getShort();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 1
start local 1 1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmplt 5
2: aload 1
invokevirtual java.nio.ByteBuffer.getShort:()S
ldc 65535
iand
istore 2
start local 2 3: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextBuffer:()V
4: iload 2
ireturn
end local 2 5: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 2
start local 2 6: iload 2
bipush 8
ishl
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
iadd
istore 2
7: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
1 8 1 buf Ljava/nio/ByteBuffer;
3 5 2 res I
6 8 2 val I
public int getInt();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 1
start local 1 1: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_4
if_icmplt 5
2: aload 1
invokevirtual java.nio.ByteBuffer.getInt:()I
istore 2
start local 2 3: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextBuffer:()V
4: iload 2
ireturn
end local 2 5: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 2
start local 2 6: iload 2
bipush 8
ishl
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
iadd
istore 2
7: iload 2
bipush 8
ishl
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
iadd
istore 2
8: iload 2
bipush 8
ishl
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
iadd
istore 2
9: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
1 10 1 buf Ljava/nio/ByteBuffer;
3 5 2 res I
6 10 2 val I
public byte[] getBytes(int);
descriptor: (I)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, 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 9
3: StackMap locals: byte[] int
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 4
start local 4 4: iload 1
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 5: aload 4
aload 2
iload 3
iload 5
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
6: iload 3
iload 5
iadd
istore 3
7: iload 1
iload 5
isub
istore 1
8: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextBuffer:()V
end local 5 end local 4 9: StackMap locals:
StackMap stack:
iload 1
ifgt 3
10: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 11 1 n I
1 11 2 bytes [B
2 11 3 offset I
4 9 4 buf Ljava/nio/ByteBuffer;
5 9 5 length I
MethodParameters:
Name Flags
n
private jdk.incubator.http.internal.common.ByteBufferReference[] getBuffers(boolean, int);
descriptor: (ZI)[Ljdk/incubator/http/internal/common/ByteBufferReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, 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 13
2: StackMap locals: java.util.List
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 4
start local 4 3: aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5
start local 5 4: iload 5
iload 2
invokestatic java.lang.Math.min:(II)I
istore 6
start local 6 5: iload 1
ifeq 9
6: aload 4
iload 6
invokestatic jdk.incubator.http.internal.common.Utils.slice:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
astore 7
start local 7 7: aload 0
iconst_1
putfield jdk.incubator.http.internal.frame.FramesDecoder.slicedToDataFrame:Z
8: goto 10
end local 7 9: StackMap locals: java.nio.ByteBuffer int int
StackMap stack:
aload 4
iload 6
invokestatic jdk.incubator.http.internal.common.Utils.slice:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
astore 7
start local 7 10: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
aload 7
invokestatic jdk.incubator.http.internal.common.ByteBufferReference.of:(Ljava/nio/ByteBuffer;)Ljdk/incubator/http/internal/common/ByteBufferReference;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
11: iload 2
iload 6
isub
istore 2
12: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextBuffer:()V
end local 7 end local 6 end local 5 end local 4 13: StackMap locals: jdk.incubator.http.internal.frame.FramesDecoder int int java.util.List
StackMap stack:
iload 2
ifgt 2
14: aload 3
iconst_0
anewarray jdk.incubator.http.internal.common.ByteBufferReference
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.ByteBufferReference[]
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 15 1 isDataFrame Z
0 15 2 bytecount I
1 15 3 res Ljava/util/List<Ljdk/incubator/http/internal/common/ByteBufferReference;>;
3 13 4 buf Ljava/nio/ByteBuffer;
4 13 5 remaining I
5 13 6 extract I
7 9 7 extractedBuf Ljava/nio/ByteBuffer;
10 13 7 extractedBuf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
isDataFrame
bytecount
public void skipBytes(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: goto 7
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.currentBuffer:Ljdk/incubator/http/internal/common/ByteBufferReference;
invokevirtual jdk.incubator.http.internal.common.ByteBufferReference.get:()Ljava/nio/ByteBuffer;
astore 2
start local 2 2: aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 3
start local 3 3: iload 3
iload 1
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 4: aload 2
aload 2
invokevirtual java.nio.ByteBuffer.position:()I
iload 4
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
5: iload 1
iload 3
isub
istore 1
6: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.nextBuffer:()V
end local 4 end local 3 end local 2 7: StackMap locals:
StackMap stack:
iload 1
ifgt 1
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 9 1 bytecount I
2 7 2 buf Ljava/nio/ByteBuffer;
3 7 3 remaining I
4 7 4 extract I
MethodParameters:
Name Flags
bytecount
private jdk.incubator.http.internal.frame.Http2Frame parseFrameBody();
descriptor: ()Ljdk/incubator/http/internal/frame/Http2Frame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: getstatic jdk.incubator.http.internal.frame.FramesDecoder.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.incubator.http.internal.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.incubator.http.internal.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.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseDataFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseHeadersFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parsePriorityFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseResetFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseSettingsFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parsePushPromiseFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
8: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parsePingFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
9: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseGoAwayFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseWindowUpdateFrame:(III)Ljdk/incubator/http/internal/frame/Http2Frame;
areturn
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameStreamid:I
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameFlags:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.parseContinuationFrame:(III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder.frameType:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
13: aload 0
aload 0
getfield jdk.incubator.http.internal.frame.FramesDecoder.frameLength:I
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.skipBytes:(I)V
14: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
Exceptions:
throws java.io.IOException
private jdk.incubator.http.internal.frame.Http2Frame parseDataFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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 2
1: new jdk.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
ldc "zero streamId for DataFrame"
invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: iload 3
bipush 8
iand
ifeq 10
4: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 4
5: iload 4
iload 1
if_icmplt 9
6: new jdk.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
7: ldc "the length of the padding is the length of the frame payload or greater"
8: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
9: StackMap locals: int
StackMap stack:
iinc 1 -1
10: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.DataFrame
dup
iload 2
iload 3
11: aload 0
iconst_1
iload 1
iload 4
isub
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getBuffers:(ZI)[Ljdk/incubator/http/internal/common/ByteBufferReference;
iload 4
12: invokespecial jdk.incubator.http.internal.frame.DataFrame.<init>:(II[Ljdk/incubator/http/internal/common/ByteBufferReference;I)V
astore 5
start local 5 13: aload 0
iload 4
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.skipBytes:(I)V
14: 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 15 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 15 1 frameLength I
0 15 2 streamid I
0 15 3 flags I
3 15 4 padLength I
13 15 5 df Ljdk/incubator/http/internal/frame/DataFrame;
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.incubator.http.internal.frame.Http2Frame (int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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 2
1: new jdk.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
ldc "zero streamId for HeadersFrame"
invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: iload 3
bipush 8
iand
ifeq 6
4: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 4
5: iinc 1 -1
6: StackMap locals: int
StackMap stack:
iload 3
bipush 32
iand
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 5
start local 5 9: iconst_0
istore 6
start local 6 10: iconst_0
istore 7
start local 7 11: iconst_0
istore 8
start local 8 12: iload 5
ifeq 20
13: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
istore 9
start local 9 14: iload 9
ldc -2147483648
iand
ifeq 15
iconst_1
goto 16
StackMap locals: jdk.incubator.http.internal.frame.FramesDecoder int int int int int int int int int
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 6
17: iload 9
ldc 2147483647
iand
istore 7
18: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 8
19: iinc 1 -5
end local 9 20: StackMap locals:
StackMap stack:
iload 1
iload 4
if_icmpge 24
21: new jdk.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
22: ldc "Padding exceeds the size remaining for the header block"
23: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
24: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.HeadersFrame
dup
iload 2
iload 3
25: aload 0
iconst_0
iload 1
iload 4
isub
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getBuffers:(ZI)[Ljdk/incubator/http/internal/common/ByteBufferReference;
iload 4
26: invokespecial jdk.incubator.http.internal.frame.HeadersFrame.<init>:(II[Ljdk/incubator/http/internal/common/ByteBufferReference;I)V
astore 9
start local 9 27: aload 0
iload 4
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.skipBytes:(I)V
28: iload 5
ifeq 30
29: aload 9
iload 7
iload 6
iload 8
invokevirtual jdk.incubator.http.internal.frame.HeadersFrame.setPriority:(IZI)V
30: StackMap locals: jdk.incubator.http.internal.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 31 0 this Ljdk/incubator/http/internal/frame/FramesDecoder;
0 31 1 frameLength I
0 31 2 streamid I
0 31 3 flags I
3 31 4 padLength I
9 31 5 hasPriority Z
10 31 6 exclusive Z
11 31 7 streamDependency I
12 31 8 weight I
14 20 9 x I
27 31 9 hf Ljdk/incubator/http/internal/frame/HeadersFrame;
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.incubator.http.internal.frame.Http2Frame parsePriorityFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for PriorityFrame"
3: invokespecial jdk.incubator.http.internal.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.incubator.http.internal.frame.FramesDecoder.skipBytes:(I)V
6: new jdk.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame.<init>:(IILjava/lang/String;)V
areturn
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
istore 4
start local 4 10: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 5
start local 5 11: new jdk.incubator.http.internal.frame.PriorityFrame
dup
iload 2
iload 4
ldc 2147483647
iand
iload 4
ldc -2147483648
iand
ifeq 12
iconst_1
goto 13
StackMap locals: jdk.incubator.http.internal.frame.FramesDecoder int int int int int
StackMap stack: new 11 new 11 int int
12: iconst_0
StackMap locals: jdk.incubator.http.internal.frame.FramesDecoder int int int int int
StackMap stack: new 11 new 11 int int int
13: iload 5
invokespecial jdk.incubator.http.internal.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/incubator/http/internal/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.incubator.http.internal.frame.Http2Frame parseResetFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for ResetFrame"
3: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
iconst_4
if_icmpeq 8
5: new jdk.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.ResetFrame
dup
iload 2
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
invokespecial jdk.incubator.http.internal.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/incubator/http/internal/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.incubator.http.internal.frame.Http2Frame parseSettingsFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "non-zero streamId for SettingsFrame"
3: invokespecial jdk.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame
dup
bipush 6
6: ldc "ACK SettingsFrame is not empty"
7: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
iload 1
bipush 6
irem
ifeq 12
9: new jdk.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
12: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.SettingsFrame
dup
iload 3
invokespecial jdk.incubator.http.internal.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.incubator.http.internal.frame.SettingsFrame int int
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getShort:()I
istore 7
start local 7 17: aload 0
invokevirtual jdk.incubator.http.internal.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.incubator.http.internal.frame.SettingsFrame.setParameter:(II)Ljdk/incubator/http/internal/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/incubator/http/internal/frame/FramesDecoder;
0 23 1 frameLength I
0 23 2 streamid I
0 23 3 flags I
13 23 4 sf Ljdk/incubator/http/internal/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.incubator.http.internal.frame.Http2Frame parsePushPromiseFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for PushPromiseFrame"
3: invokespecial jdk.incubator.http.internal.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.incubator.http.internal.frame.FramesDecoder.getByte:()I
istore 4
7: iinc 1 -1
8: StackMap locals: int
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
12: ldc "Padding exceeds the size remaining for the PushPromiseFrame"
13: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
14: StackMap locals: int
StackMap stack:
new jdk.incubator.http.internal.frame.PushPromiseFrame
dup
iload 2
iload 3
iload 5
15: aload 0
iconst_0
iload 1
iload 4
isub
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getBuffers:(ZI)[Ljdk/incubator/http/internal/common/ByteBufferReference;
iload 4
16: invokespecial jdk.incubator.http.internal.frame.PushPromiseFrame.<init>:(III[Ljdk/incubator/http/internal/common/ByteBufferReference;I)V
astore 6
start local 6 17: aload 0
iload 4
invokevirtual jdk.incubator.http.internal.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/incubator/http/internal/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/incubator/http/internal/frame/PushPromiseFrame;
MethodParameters:
Name Flags
frameLength
streamid
flags
private jdk.incubator.http.internal.frame.Http2Frame parsePingFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "non-zero streamId for PingFrame"
3: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
bipush 8
if_icmpeq 8
5: new jdk.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.PingFrame
dup
iload 3
aload 0
bipush 8
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getBytes:(I)[B
invokespecial jdk.incubator.http.internal.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/incubator/http/internal/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.incubator.http.internal.frame.Http2Frame parseGoAwayFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "non-zero streamId for GoAwayFrame"
3: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
iload 1
bipush 8
if_icmpge 8
5: new jdk.incubator.http.internal.frame.MalformedFrame
dup
bipush 6
6: ldc "Invalid GoAway frame size"
7: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
istore 4
start local 4 9: aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
istore 5
start local 5 10: aload 0
iload 1
bipush 8
isub
invokevirtual jdk.incubator.http.internal.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
invokespecial java.lang.String.<init>:([B)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.incubator.http.internal.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
13: StackMap locals: int int byte[]
StackMap stack:
new jdk.incubator.http.internal.frame.GoAwayFrame
dup
iload 4
iload 5
aload 6
invokespecial jdk.incubator.http.internal.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/incubator/http/internal/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.incubator.http.internal.frame.Http2Frame parseWindowUpdateFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.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.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.WindowUpdateFrame
dup
iload 2
aload 0
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getInt:()I
ldc 2147483647
iand
invokespecial jdk.incubator.http.internal.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/incubator/http/internal/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.incubator.http.internal.frame.Http2Frame parseContinuationFrame(int, int, int);
descriptor: (III)Ljdk/incubator/http/internal/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.incubator.http.internal.frame.MalformedFrame
dup
iconst_1
2: ldc "zero streamId for ContinuationFrame"
3: invokespecial jdk.incubator.http.internal.frame.MalformedFrame.<init>:(ILjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.frame.ContinuationFrame
dup
iload 2
iload 3
aload 0
iconst_0
iload 1
invokevirtual jdk.incubator.http.internal.frame.FramesDecoder.getBuffers:(ZI)[Ljdk/incubator/http/internal/common/ByteBufferReference;
invokespecial jdk.incubator.http.internal.frame.ContinuationFrame.<init>:(II[Ljdk/incubator/http/internal/common/ByteBufferReference;)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/incubator/http/internal/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.incubator.http.internal.frame.FramesDecoder$FrameProcessor
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract FrameProcessor = jdk.incubator.http.internal.frame.FramesDecoder$FrameProcessor of jdk.incubator.http.internal.frame.FramesDecoder