public class io.netty.handler.codec.DelimiterBasedFrameDecoder 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.DelimiterBasedFrameDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private final io.netty.buffer.ByteBuf[] delimiters;
descriptor: [Lio/netty/buffer/ByteBuf;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int maxFrameLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean stripDelimiter;
descriptor: Z
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 int tooLongFrameLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final io.netty.handler.codec.LineBasedFrameDecoder lineBasedDecoder;
descriptor: Lio/netty/handler/codec/LineBasedFrameDecoder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(int, io.netty.buffer.ByteBuf);
descriptor: (ILio/netty/buffer/ByteBuf;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iconst_1
aload 2
invokespecial io.netty.handler.codec.DelimiterBasedFrameDecoder.<init>:(IZLio/netty/buffer/ByteBuf;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
0 2 1 maxFrameLength I
0 2 2 delimiter Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
maxFrameLength
delimiter
public void <init>(int, boolean, io.netty.buffer.ByteBuf);
descriptor: (IZLio/netty/buffer/ByteBuf;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
iload 2
iconst_1
aload 3
invokespecial io.netty.handler.codec.DelimiterBasedFrameDecoder.<init>:(IZZLio/netty/buffer/ByteBuf;)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/DelimiterBasedFrameDecoder;
0 2 1 maxFrameLength I
0 2 2 stripDelimiter Z
0 2 3 delimiter Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
maxFrameLength
stripDelimiter
delimiter
public void <init>(int, boolean, boolean, io.netty.buffer.ByteBuf);
descriptor: (IZZLio/netty/buffer/ByteBuf;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iload 1
iload 2
iload 3
iconst_1
anewarray io.netty.buffer.ByteBuf
dup
iconst_0
1: aload 4
aload 4
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
aload 4
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.slice:(II)Lio/netty/buffer/ByteBuf;
aastore
invokespecial io.netty.handler.codec.DelimiterBasedFrameDecoder.<init>:(IZZ[Lio/netty/buffer/ByteBuf;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
0 3 1 maxFrameLength I
0 3 2 stripDelimiter Z
0 3 3 failFast Z
0 3 4 delimiter Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
maxFrameLength
stripDelimiter
failFast
delimiter
public void <init>(int, io.netty.buffer.ByteBuf[]);
descriptor: (I[Lio/netty/buffer/ByteBuf;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iconst_1
aload 2
invokespecial io.netty.handler.codec.DelimiterBasedFrameDecoder.<init>:(IZ[Lio/netty/buffer/ByteBuf;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
0 2 1 maxFrameLength I
0 2 2 delimiters [Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
maxFrameLength
delimiters
public void <init>(int, boolean, io.netty.buffer.ByteBuf[]);
descriptor: (IZ[Lio/netty/buffer/ByteBuf;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
iload 2
iconst_1
aload 3
invokespecial io.netty.handler.codec.DelimiterBasedFrameDecoder.<init>:(IZZ[Lio/netty/buffer/ByteBuf;)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/DelimiterBasedFrameDecoder;
0 2 1 maxFrameLength I
0 2 2 stripDelimiter Z
0 2 3 delimiters [Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
maxFrameLength
stripDelimiter
delimiters
public void <init>(int, boolean, boolean, io.netty.buffer.ByteBuf[]);
descriptor: (IZZ[Lio/netty/buffer/ByteBuf;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=6, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: iload 1
invokestatic io.netty.handler.codec.DelimiterBasedFrameDecoder.validateMaxFrameLength:(I)V
2: aload 4
ifnonnull 4
3: new java.lang.NullPointerException
dup
ldc "delimiters"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: io.netty.handler.codec.DelimiterBasedFrameDecoder int int int io.netty.buffer.ByteBuf[]
StackMap stack:
aload 4
arraylength
ifne 6
5: new java.lang.IllegalArgumentException
dup
ldc "empty delimiters"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 4
invokestatic io.netty.handler.codec.DelimiterBasedFrameDecoder.isLineBased:([Lio/netty/buffer/ByteBuf;)Z
ifeq 10
aload 0
invokevirtual io.netty.handler.codec.DelimiterBasedFrameDecoder.isSubclass:()Z
ifne 10
7: aload 0
new io.netty.handler.codec.LineBasedFrameDecoder
dup
iload 1
iload 2
iload 3
invokespecial io.netty.handler.codec.LineBasedFrameDecoder.<init>:(IZZ)V
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.lineBasedDecoder:Lio/netty/handler/codec/LineBasedFrameDecoder;
8: aload 0
aconst_null
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.delimiters:[Lio/netty/buffer/ByteBuf;
9: goto 19
10: StackMap locals:
StackMap stack:
aload 0
aload 4
arraylength
anewarray io.netty.buffer.ByteBuf
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.delimiters:[Lio/netty/buffer/ByteBuf;
11: iconst_0
istore 5
start local 5 12: goto 17
13: StackMap locals: int
StackMap stack:
aload 4
iload 5
aaload
astore 6
start local 6 14: aload 6
invokestatic io.netty.handler.codec.DelimiterBasedFrameDecoder.validateDelimiter:(Lio/netty/buffer/ByteBuf;)V
15: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.delimiters:[Lio/netty/buffer/ByteBuf;
iload 5
aload 6
aload 6
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
aload 6
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.slice:(II)Lio/netty/buffer/ByteBuf;
aastore
end local 6 16: iinc 5 1
StackMap locals:
StackMap stack:
17: iload 5
aload 4
arraylength
if_icmplt 13
end local 5 18: aload 0
aconst_null
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.lineBasedDecoder:Lio/netty/handler/codec/LineBasedFrameDecoder;
19: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.maxFrameLength:I
20: aload 0
iload 2
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.stripDelimiter:Z
21: aload 0
iload 3
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.failFast:Z
22: return
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 Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
0 23 1 maxFrameLength I
0 23 2 stripDelimiter Z
0 23 3 failFast Z
0 23 4 delimiters [Lio/netty/buffer/ByteBuf;
12 18 5 i I
14 16 6 d Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
maxFrameLength
stripDelimiter
failFast
delimiters
private static boolean isLineBased(io.netty.buffer.ByteBuf[]);
descriptor: ([Lio/netty/buffer/ByteBuf;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
arraylength
iconst_2
if_icmpeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
aaload
astore 1
start local 1 3: aload 0
iconst_1
aaload
astore 2
start local 2 4: aload 1
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
aload 2
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
if_icmpge 7
5: aload 0
iconst_1
aaload
astore 1
6: aload 0
iconst_0
aaload
astore 2
7: StackMap locals: io.netty.buffer.ByteBuf io.netty.buffer.ByteBuf
StackMap stack:
aload 1
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
iconst_2
if_icmpne 11
aload 2
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
iconst_1
if_icmpne 11
8: aload 1
iconst_0
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 13
if_icmpne 11
aload 1
iconst_1
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 10
if_icmpne 11
9: aload 2
iconst_0
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 10
if_icmpne 11
10: iconst_1
ireturn
StackMap locals:
StackMap stack:
11: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 delimiters [Lio/netty/buffer/ByteBuf;
3 12 1 a Lio/netty/buffer/ByteBuf;
4 12 2 b Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
delimiters final
private boolean isSubclass();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
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.DelimiterBasedFrameDecoder.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/DelimiterBasedFrameDecoder;
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
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=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.lineBasedDecoder:Lio/netty/handler/codec/LineBasedFrameDecoder;
ifnull 2
1: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.lineBasedDecoder:Lio/netty/handler/codec/LineBasedFrameDecoder;
aload 1
aload 2
invokevirtual io.netty.handler.codec.LineBasedFrameDecoder.decode:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;)Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
ldc 2147483647
istore 3
start local 3 3: aconst_null
astore 4
start local 4 4: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.delimiters:[Lio/netty/buffer/ByteBuf;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 11
StackMap locals: io.netty.handler.codec.DelimiterBasedFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int io.netty.buffer.ByteBuf top int int io.netty.buffer.ByteBuf[]
StackMap stack:
5: aload 8
iload 6
aaload
astore 5
start local 5 6: aload 2
aload 5
invokestatic io.netty.handler.codec.DelimiterBasedFrameDecoder.indexOf:(Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)I
istore 9
start local 9 7: iload 9
iflt 10
iload 9
iload 3
if_icmpge 10
8: iload 9
istore 3
9: aload 5
astore 4
end local 9 end local 5 10: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
iload 7
if_icmplt 5
12: aload 4
ifnull 32
13: aload 4
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
istore 5
start local 5 14: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.discardingTooLongFrame:Z
ifeq 22
15: aload 0
iconst_0
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.discardingTooLongFrame:Z
16: aload 2
iload 3
iload 5
iadd
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
17: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.tooLongFrameLength:I
istore 7
start local 7 18: aload 0
iconst_0
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.tooLongFrameLength:I
19: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.failFast:Z
ifne 21
20: aload 0
iload 7
i2l
invokevirtual io.netty.handler.codec.DelimiterBasedFrameDecoder.fail:(J)V
21: StackMap locals: io.netty.handler.codec.DelimiterBasedFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int io.netty.buffer.ByteBuf int top int
StackMap stack:
aconst_null
areturn
end local 7 22: StackMap locals: io.netty.handler.codec.DelimiterBasedFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int io.netty.buffer.ByteBuf int
StackMap stack:
iload 3
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.maxFrameLength:I
if_icmple 26
23: aload 2
iload 3
iload 5
iadd
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
24: aload 0
iload 3
i2l
invokevirtual io.netty.handler.codec.DelimiterBasedFrameDecoder.fail:(J)V
25: aconst_null
areturn
26: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.stripDelimiter:Z
ifeq 30
27: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
astore 6
start local 6 28: aload 2
iload 5
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
29: goto 31
end local 6 30: StackMap locals:
StackMap stack:
aload 2
iload 3
iload 5
iadd
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
astore 6
start local 6 31: StackMap locals: io.netty.buffer.ByteBuf
StackMap stack:
aload 6
areturn
end local 6 end local 5 32: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.discardingTooLongFrame:Z
ifne 40
33: aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.maxFrameLength:I
if_icmple 42
34: aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.tooLongFrameLength:I
35: aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
36: aload 0
iconst_1
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.discardingTooLongFrame:Z
37: aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.failFast:Z
ifeq 42
38: aload 0
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.tooLongFrameLength:I
i2l
invokevirtual io.netty.handler.codec.DelimiterBasedFrameDecoder.fail:(J)V
39: goto 42
40: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.tooLongFrameLength:I
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iadd
putfield io.netty.handler.codec.DelimiterBasedFrameDecoder.tooLongFrameLength:I
41: aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
42: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lio/netty/handler/codec/DelimiterBasedFrameDecoder;
0 43 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 43 2 buffer Lio/netty/buffer/ByteBuf;
3 43 3 minFrameLength I
4 43 4 minDelim Lio/netty/buffer/ByteBuf;
6 10 5 delim Lio/netty/buffer/ByteBuf;
7 10 9 frameLength I
14 32 5 minDelimLength I
28 30 6 frame Lio/netty/buffer/ByteBuf;
31 32 6 frame Lio/netty/buffer/ByteBuf;
18 22 7 tooLongFrameLength I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
buffer
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 "frame length exceeds "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.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 "frame length exceeds "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.DelimiterBasedFrameDecoder.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/DelimiterBasedFrameDecoder;
0 11 1 frameLength J
MethodParameters:
Name Flags
frameLength
private static int indexOf(io.netty.buffer.ByteBuf, io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBuf;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 2
start local 2 1: goto 16
2: StackMap locals: int
StackMap stack:
iload 2
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 12
5: StackMap locals: int int
StackMap stack:
aload 0
iload 3
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
aload 1
iload 4
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
if_icmpeq 7
6: goto 13
7: StackMap locals:
StackMap stack:
iinc 3 1
8: iload 3
aload 0
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
if_icmpne 11
9: iload 4
aload 1
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
iconst_1
isub
if_icmpeq 11
10: iconst_m1
ireturn
11: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 1
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
if_icmplt 5
13: StackMap locals:
StackMap stack:
iload 4
aload 1
invokevirtual io.netty.buffer.ByteBuf.capacity:()I
if_icmpne 15
14: iload 2
aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
ireturn
end local 4 end local 3 15: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
16: iload 2
aload 0
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
if_icmplt 2
end local 2 17: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 haystack Lio/netty/buffer/ByteBuf;
0 18 1 needle Lio/netty/buffer/ByteBuf;
1 17 2 i I
3 15 3 haystackIndex I
4 15 4 needleIndex I
MethodParameters:
Name Flags
haystack
needle
private static void validateDelimiter(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "delimiter"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
ldc "empty delimiter"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 delimiter Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
delimiter
private static void validateMaxFrameLength(int);
descriptor: (I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iload 0
ifgt 6
1: new java.lang.IllegalArgumentException
dup
2: new java.lang.StringBuilder
dup
ldc "maxFrameLength must be a positive integer: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 maxFrameLength I
MethodParameters:
Name Flags
maxFrameLength
}
SourceFile: "DelimiterBasedFrameDecoder.java"