public class io.netty.handler.codec.LengthFieldBasedFrameDecoder extends io.netty.handler.codec.ByteToMessageDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.LengthFieldBasedFrameDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private final java.nio.ByteOrder byteOrder;
descriptor: Ljava/nio/ByteOrder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxFrameLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int lengthFieldOffset;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int lengthFieldLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int lengthFieldEndOffset;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int lengthAdjustment;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int initialBytesToStrip;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean failFast;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean discardingTooLongFrame;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long tooLongFrameLength;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long bytesToDiscard;
descriptor: J
flags: (0x0002) ACC_PRIVATE
public void <init>(int, int, int);
descriptor: (III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
iload 2
iload 3
iconst_0
iconst_0
invokespecial io.netty.handler.codec.LengthFieldBasedFrameDecoder.<init>:(IIIII)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 2 1 maxFrameLength I
0 2 2 lengthFieldOffset I
0 2 3 lengthFieldLength I
MethodParameters:
Name Flags
maxFrameLength
lengthFieldOffset
lengthFieldLength
public void <init>(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
1: iload 1
2: iload 2
iload 3
iload 4
3: iload 5
iconst_1
invokespecial io.netty.handler.codec.LengthFieldBasedFrameDecoder.<init>:(IIIIIZ)V
4: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 5 1 maxFrameLength I
0 5 2 lengthFieldOffset I
0 5 3 lengthFieldLength I
0 5 4 lengthAdjustment I
0 5 5 initialBytesToStrip I
MethodParameters:
Name Flags
maxFrameLength
lengthFieldOffset
lengthFieldLength
lengthAdjustment
initialBytesToStrip
public void <init>(int, int, int, int, int, boolean);
descriptor: (IIIIIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
1: getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
iload 1
iload 2
iload 3
2: iload 4
iload 5
iload 6
invokespecial io.netty.handler.codec.LengthFieldBasedFrameDecoder.<init>:(Ljava/nio/ByteOrder;IIIIIZ)V
3: return
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 4 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 4 1 maxFrameLength I
0 4 2 lengthFieldOffset I
0 4 3 lengthFieldLength I
0 4 4 lengthAdjustment I
0 4 5 initialBytesToStrip I
0 4 6 failFast Z
MethodParameters:
Name Flags
maxFrameLength
lengthFieldOffset
lengthFieldLength
lengthAdjustment
initialBytesToStrip
failFast
public void <init>(java.nio.ByteOrder, int, int, int, int, int, boolean);
descriptor: (Ljava/nio/ByteOrder;IIIIIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: aload 1
ifnonnull 3
2: new java.lang.NullPointerException
dup
ldc "byteOrder"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: io.netty.handler.codec.LengthFieldBasedFrameDecoder java.nio.ByteOrder int int int int int int
StackMap stack:
iload 2
ifgt 9
4: new java.lang.IllegalArgumentException
dup
5: new java.lang.StringBuilder
dup
ldc "maxFrameLength must be a positive integer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iload 3
ifge 15
10: new java.lang.IllegalArgumentException
dup
11: new java.lang.StringBuilder
dup
ldc "lengthFieldOffset must be a non-negative integer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
12: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iload 6
ifge 21
16: new java.lang.IllegalArgumentException
dup
17: new java.lang.StringBuilder
dup
ldc "initialBytesToStrip must be a non-negative integer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
18: iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
19: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
iload 3
iload 2
iload 4
isub
if_icmple 29
22: new java.lang.IllegalArgumentException
dup
23: new java.lang.StringBuilder
dup
ldc "maxFrameLength ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: ldc "must be equal to or greater than "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: ldc "lengthFieldOffset ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") + "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
26: ldc "lengthFieldLength ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
27: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
28: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.byteOrder:Ljava/nio/ByteOrder;
30: aload 0
iload 2
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.maxFrameLength:I
31: aload 0
iload 3
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldOffset:I
32: aload 0
iload 4
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldLength:I
33: aload 0
iload 5
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthAdjustment:I
34: aload 0
iload 3
iload 4
iadd
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldEndOffset:I
35: aload 0
iload 6
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.initialBytesToStrip:I
36: aload 0
iload 7
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.failFast:Z
37: return
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 38 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 38 1 byteOrder Ljava/nio/ByteOrder;
0 38 2 maxFrameLength I
0 38 3 lengthFieldOffset I
0 38 4 lengthFieldLength I
0 38 5 lengthAdjustment I
0 38 6 initialBytesToStrip I
0 38 7 failFast Z
MethodParameters:
Name Flags
byteOrder
maxFrameLength
lengthFieldOffset
lengthFieldLength
lengthAdjustment
initialBytesToStrip
failFast
protected final void decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, java.util.List<java.lang.Object>);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List;)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.decode:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Ljava/lang/Object;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals: java.lang.Object
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 in Lio/netty/buffer/ByteBuf;
0 4 3 out Ljava/util/List<Ljava/lang/Object;>;
1 4 4 decoded Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
Signature: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;Ljava/util/List<Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
ctx
in
out
private void discardingTooLongFrame(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.bytesToDiscard:J
lstore 2
start local 2 1: lload 2
aload 1
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 4
start local 4 2: aload 1
iload 4
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
3: lload 2
iload 4
i2l
lsub
lstore 2
4: aload 0
lload 2
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.bytesToDiscard:J
5: aload 0
iconst_0
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.failIfNecessary:(Z)V
6: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 7 1 in Lio/netty/buffer/ByteBuf;
1 7 2 bytesToDiscard J
2 7 4 localBytesToDiscard I
MethodParameters:
Name Flags
in
private static void failOnNegativeLengthField(io.netty.buffer.ByteBuf, long, int);
descriptor: (Lio/netty/buffer/ByteBuf;JI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
iload 3
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
1: new io.netty.handler.codec.CorruptedFrameException
dup
2: new java.lang.StringBuilder
dup
ldc "negative pre-adjustment length field: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 in Lio/netty/buffer/ByteBuf;
0 4 1 frameLength J
0 4 3 lengthFieldEndOffset I
MethodParameters:
Name Flags
in
frameLength
lengthFieldEndOffset
private static void failOnFrameLengthLessThanLengthFieldEndOffset(io.netty.buffer.ByteBuf, long, int);
descriptor: (Lio/netty/buffer/ByteBuf;JI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
iload 3
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
1: new io.netty.handler.codec.CorruptedFrameException
dup
2: new java.lang.StringBuilder
dup
ldc "Adjusted frame length ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ") is less "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "than lengthFieldEndOffset: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 in Lio/netty/buffer/ByteBuf;
0 6 1 frameLength J
0 6 3 lengthFieldEndOffset I
MethodParameters:
Name Flags
in
frameLength
lengthFieldEndOffset
private void exceededFrameLength(io.netty.buffer.ByteBuf, long);
descriptor: (Lio/netty/buffer/ByteBuf;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: lload 2
aload 1
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
i2l
lsub
lstore 4
start local 4 1: aload 0
lload 2
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.tooLongFrameLength:J
2: lload 4
lconst_0
lcmp
ifge 5
3: aload 1
lload 2
l2i
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
4: goto 8
5: StackMap locals: long
StackMap stack:
aload 0
iconst_1
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.discardingTooLongFrame:Z
6: aload 0
lload 4
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.bytesToDiscard:J
7: aload 1
aload 1
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.failIfNecessary:(Z)V
9: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 10 1 in Lio/netty/buffer/ByteBuf;
0 10 2 frameLength J
1 10 4 discard J
MethodParameters:
Name Flags
in
frameLength
private static void failOnFrameLengthLessThanInitialBytesToStrip(io.netty.buffer.ByteBuf, long, int);
descriptor: (Lio/netty/buffer/ByteBuf;JI)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
l2i
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
1: new io.netty.handler.codec.CorruptedFrameException
dup
2: new java.lang.StringBuilder
dup
ldc "Adjusted frame length ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc ") is less "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "than initialBytesToStrip: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 in Lio/netty/buffer/ByteBuf;
0 6 1 frameLength J
0 6 3 initialBytesToStrip I
MethodParameters:
Name Flags
in
frameLength
initialBytesToStrip
protected java.lang.Object decode(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.discardingTooLongFrame:Z
ifeq 2
1: aload 0
aload 2
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.discardingTooLongFrame:(Lio/netty/buffer/ByteBuf;)V
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldEndOffset:I
if_icmpge 4
3: aconst_null
areturn
4: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldOffset:I
iadd
istore 3
start local 3 5: aload 0
aload 2
iload 3
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldLength:I
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.byteOrder:Ljava/nio/ByteOrder;
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.getUnadjustedFrameLength:(Lio/netty/buffer/ByteBuf;IILjava/nio/ByteOrder;)J
lstore 4
start local 4 6: lload 4
lconst_0
lcmp
ifge 8
7: aload 2
lload 4
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldEndOffset:I
invokestatic io.netty.handler.codec.LengthFieldBasedFrameDecoder.failOnNegativeLengthField:(Lio/netty/buffer/ByteBuf;JI)V
8: StackMap locals: int long
StackMap stack:
lload 4
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthAdjustment:I
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldEndOffset:I
iadd
i2l
ladd
lstore 4
9: lload 4
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldEndOffset:I
i2l
lcmp
ifge 11
10: aload 2
lload 4
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldEndOffset:I
invokestatic io.netty.handler.codec.LengthFieldBasedFrameDecoder.failOnFrameLengthLessThanLengthFieldEndOffset:(Lio/netty/buffer/ByteBuf;JI)V
11: StackMap locals:
StackMap stack:
lload 4
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.maxFrameLength:I
i2l
lcmp
ifle 14
12: aload 0
aload 2
lload 4
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.exceededFrameLength:(Lio/netty/buffer/ByteBuf;J)V
13: aconst_null
areturn
14: StackMap locals:
StackMap stack:
lload 4
l2i
istore 6
start local 6 15: aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iload 6
if_icmpge 17
16: aconst_null
areturn
17: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.initialBytesToStrip:I
iload 6
if_icmple 19
18: aload 2
lload 4
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.initialBytesToStrip:I
invokestatic io.netty.handler.codec.LengthFieldBasedFrameDecoder.failOnFrameLengthLessThanInitialBytesToStrip:(Lio/netty/buffer/ByteBuf;JI)V
19: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.initialBytesToStrip:I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
20: aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 7
start local 7 21: iload 6
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.initialBytesToStrip:I
isub
istore 8
start local 8 22: aload 0
aload 1
aload 2
iload 7
iload 8
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.extractFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
astore 9
start local 9 23: aload 2
iload 7
iload 8
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
24: aload 9
areturn
end local 9 end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 25 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 25 2 in Lio/netty/buffer/ByteBuf;
5 25 3 actualLengthFieldOffset I
6 25 4 frameLength J
15 25 6 frameLengthInt I
21 25 7 readerIndex I
22 25 8 actualFrameLength I
23 25 9 frame Lio/netty/buffer/ByteBuf;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
in
protected long getUnadjustedFrameLength(io.netty.buffer.ByteBuf, int, int, java.nio.ByteOrder);
descriptor: (Lio/netty/buffer/ByteBuf;IILjava/nio/ByteOrder;)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
aload 4
invokevirtual io.netty.buffer.ByteBuf.order:(Ljava/nio/ByteOrder;)Lio/netty/buffer/ByteBuf;
astore 1
1: iload 3
tableswitch { // 1 - 8
1: 2
2: 4
3: 6
4: 8
5: 12
6: 12
7: 12
8: 10
default: 12
}
2: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.getUnsignedByte:(I)S
i2l
lstore 5
start local 5 3: goto 15
end local 5 4: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.getUnsignedShort:(I)I
i2l
lstore 5
start local 5 5: goto 15
end local 5 6: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.getUnsignedMedium:(I)I
i2l
lstore 5
start local 5 7: goto 15
end local 5 8: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.getUnsignedInt:(I)J
lstore 5
start local 5 9: goto 15
end local 5 10: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.getLong:(I)J
lstore 5
start local 5 11: goto 15
end local 5 12: StackMap locals:
StackMap stack:
new io.netty.handler.codec.DecoderException
dup
13: new java.lang.StringBuilder
dup
ldc "unsupported lengthFieldLength: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.lengthFieldLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (expected: 1, 2, 3, 4, or 8)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial io.netty.handler.codec.DecoderException.<init>:(Ljava/lang/String;)V
athrow
start local 5 15: StackMap locals: long
StackMap stack:
lload 5
lreturn
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 16 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 16 1 buf Lio/netty/buffer/ByteBuf;
0 16 2 offset I
0 16 3 length I
0 16 4 order Ljava/nio/ByteOrder;
3 4 5 frameLength J
5 6 5 frameLength J
7 8 5 frameLength J
9 10 5 frameLength J
11 12 5 frameLength J
15 16 5 frameLength J
MethodParameters:
Name Flags
buf
offset
length
order
private void failIfNecessary(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.bytesToDiscard:J
lconst_0
lcmp
ifne 7
1: aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.tooLongFrameLength:J
lstore 2
start local 2 2: aload 0
lconst_0
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.tooLongFrameLength:J
3: aload 0
iconst_0
putfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.discardingTooLongFrame:Z
4: aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.failFast:Z
ifeq 5
iload 1
ifeq 9
5: StackMap locals: long
StackMap stack:
aload 0
lload 2
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.fail:(J)V
end local 2 6: goto 9
7: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.failFast:Z
ifeq 9
iload 1
ifeq 9
8: aload 0
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.tooLongFrameLength:J
invokevirtual io.netty.handler.codec.LengthFieldBasedFrameDecoder.fail:(J)V
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 10 1 firstDetectionOfTooLongFrame Z
2 6 2 tooLongFrameLength J
MethodParameters:
Name Flags
firstDetectionOfTooLongFrame
protected io.netty.buffer.ByteBuf extractFrame(io.netty.channel.ChannelHandlerContext, io.netty.buffer.ByteBuf, int, int);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
iload 3
iload 4
invokevirtual io.netty.buffer.ByteBuf.retainedSlice:(II)Lio/netty/buffer/ByteBuf;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 1 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 1 2 buffer Lio/netty/buffer/ByteBuf;
0 1 3 index I
0 1 4 length I
MethodParameters:
Name Flags
ctx
buffer
index
length
private void fail(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifle 6
1: new io.netty.handler.codec.TooLongFrameException
dup
2: new java.lang.StringBuilder
dup
ldc "Adjusted frame length exceeds "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.maxFrameLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
3: ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " - discarded"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial io.netty.handler.codec.TooLongFrameException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
new io.netty.handler.codec.TooLongFrameException
dup
7: new java.lang.StringBuilder
dup
ldc "Adjusted frame length exceeds "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.LengthFieldBasedFrameDecoder.maxFrameLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
8: ldc " - discarding"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial io.netty.handler.codec.TooLongFrameException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/handler/codec/LengthFieldBasedFrameDecoder;
0 11 1 frameLength J
MethodParameters:
Name Flags
frameLength
}
SourceFile: "LengthFieldBasedFrameDecoder.java"