public class io.netty.handler.codec.LineBasedFrameDecoder 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.LineBasedFrameDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private final int maxLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean failFast;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean stripDelimiter;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean discarding;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int discardedBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int offset;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
iconst_0
invokespecial io.netty.handler.codec.LineBasedFrameDecoder.<init>:(IZZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/LineBasedFrameDecoder;
0 2 1 maxLength I
MethodParameters:
Name Flags
maxLength final
public void <init>(int, boolean, boolean);
descriptor: (IZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: aload 0
iload 1
putfield io.netty.handler.codec.LineBasedFrameDecoder.maxLength:I
2: aload 0
iload 3
putfield io.netty.handler.codec.LineBasedFrameDecoder.failFast:Z
3: aload 0
iload 2
putfield io.netty.handler.codec.LineBasedFrameDecoder.stripDelimiter:Z
4: return
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/LineBasedFrameDecoder;
0 5 1 maxLength I
0 5 2 stripDelimiter Z
0 5 3 failFast Z
MethodParameters:
Name Flags
maxLength final
stripDelimiter final
failFast final
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.LineBasedFrameDecoder.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/LineBasedFrameDecoder;
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=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual io.netty.handler.codec.LineBasedFrameDecoder.findEndOfLine:(Lio/netty/buffer/ByteBuf;)I
istore 3
start local 3 1: aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.discarding:Z
ifne 26
2: iload 3
iflt 17
3: iload 3
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
istore 5
start local 5 4: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 13
if_icmpne 5
iconst_2
goto 6
StackMap locals: io.netty.handler.codec.LineBasedFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int top int
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: iload 5
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.maxLength:I
if_icmple 11
8: aload 2
iload 3
iload 6
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
9: aload 0
aload 1
iload 5
invokevirtual io.netty.handler.codec.LineBasedFrameDecoder.fail:(Lio/netty/channel/ChannelHandlerContext;I)V
10: aconst_null
areturn
11: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.stripDelimiter:Z
ifeq 15
12: aload 2
iload 5
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
astore 4
start local 4 13: aload 2
iload 6
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
14: goto 16
end local 4 15: StackMap locals:
StackMap stack:
aload 2
iload 5
iload 6
iadd
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
astore 4
start local 4 16: StackMap locals: io.netty.handler.codec.LineBasedFrameDecoder io.netty.channel.ChannelHandlerContext io.netty.buffer.ByteBuf int io.netty.buffer.ByteBuf int int
StackMap stack:
aload 4
areturn
end local 6 end local 5 end local 4 17: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 4
start local 4 18: iload 4
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.maxLength:I
if_icmple 25
19: aload 0
iload 4
putfield io.netty.handler.codec.LineBasedFrameDecoder.discardedBytes:I
20: aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
21: aload 0
iconst_1
putfield io.netty.handler.codec.LineBasedFrameDecoder.discarding:Z
22: aload 0
iconst_0
putfield io.netty.handler.codec.LineBasedFrameDecoder.offset:I
23: aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.failFast:Z
ifeq 25
24: aload 0
aload 1
new java.lang.StringBuilder
dup
ldc "over "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.discardedBytes:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual io.netty.handler.codec.LineBasedFrameDecoder.fail:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
25: StackMap locals: int
StackMap stack:
aconst_null
areturn
end local 4 26: StackMap locals:
StackMap stack:
iload 3
iflt 37
27: aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.discardedBytes:I
iload 3
iadd
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
istore 4
start local 4 28: aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 13
if_icmpne 29
iconst_2
goto 30
StackMap locals: int
StackMap stack:
29: iconst_1
StackMap locals:
StackMap stack: int
30: istore 5
start local 5 31: aload 2
iload 3
iload 5
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
32: aload 0
iconst_0
putfield io.netty.handler.codec.LineBasedFrameDecoder.discardedBytes:I
33: aload 0
iconst_0
putfield io.netty.handler.codec.LineBasedFrameDecoder.discarding:Z
34: aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.failFast:Z
ifne 39
35: aload 0
aload 1
iload 4
invokevirtual io.netty.handler.codec.LineBasedFrameDecoder.fail:(Lio/netty/channel/ChannelHandlerContext;I)V
end local 5 end local 4 36: goto 39
37: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.netty.handler.codec.LineBasedFrameDecoder.discardedBytes:I
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
iadd
putfield io.netty.handler.codec.LineBasedFrameDecoder.discardedBytes:I
38: aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
39: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lio/netty/handler/codec/LineBasedFrameDecoder;
0 40 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 40 2 buffer Lio/netty/buffer/ByteBuf;
1 40 3 eol I
13 15 4 frame Lio/netty/buffer/ByteBuf;
16 17 4 frame Lio/netty/buffer/ByteBuf;
4 17 5 length I
7 17 6 delimLength I
18 26 4 length I
28 36 4 length I
31 36 5 delimLength I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
buffer
private void fail(io.netty.channel.ChannelHandlerContext, int);
descriptor: (Lio/netty/channel/ChannelHandlerContext;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokevirtual io.netty.handler.codec.LineBasedFrameDecoder.fail:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)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/LineBasedFrameDecoder;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 length I
MethodParameters:
Name Flags
ctx final
length
private void fail(io.netty.channel.ChannelHandlerContext, java.lang.String);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
1: new io.netty.handler.codec.TooLongFrameException
dup
2: new java.lang.StringBuilder
dup
ldc "frame length ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ") exceeds the allowed maximum ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.maxLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial io.netty.handler.codec.TooLongFrameException.<init>:(Ljava/lang/String;)V
4: invokeinterface io.netty.channel.ChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
pop
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/LineBasedFrameDecoder;
0 6 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 6 2 length Ljava/lang/String;
MethodParameters:
Name Flags
ctx final
length
private int findEndOfLine(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 2
start local 2 1: aload 1
aload 1
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.offset:I
iadd
iload 2
aload 0
getfield io.netty.handler.codec.LineBasedFrameDecoder.offset:I
isub
getstatic io.netty.util.ByteProcessor.FIND_LF:Lio/netty/util/ByteProcessor;
invokevirtual io.netty.buffer.ByteBuf.forEachByte:(IILio/netty/util/ByteProcessor;)I
istore 3
start local 3 2: iload 3
iflt 7
3: aload 0
iconst_0
putfield io.netty.handler.codec.LineBasedFrameDecoder.offset:I
4: iload 3
ifle 8
aload 1
iload 3
iconst_1
isub
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 13
if_icmpne 8
5: iinc 3 -1
6: goto 8
7: StackMap locals: int int
StackMap stack:
aload 0
iload 2
putfield io.netty.handler.codec.LineBasedFrameDecoder.offset:I
8: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/handler/codec/LineBasedFrameDecoder;
0 9 1 buffer Lio/netty/buffer/ByteBuf;
1 9 2 totalLength I
2 9 3 i I
MethodParameters:
Name Flags
buffer final
}
SourceFile: "LineBasedFrameDecoder.java"