public class io.netty.handler.codec.json.JsonObjectDecoder 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.json.JsonObjectDecoder
super_class: io.netty.handler.codec.ByteToMessageDecoder
{
private static final int ST_CORRUPTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int ST_INIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ST_DECODING_NORMAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ST_DECODING_ARRAY_STREAM;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private int openBraces;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int idx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int lastReaderIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean insideString;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final int maxObjectLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean streamArrayElements;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc 1048576
invokespecial io.netty.handler.codec.json.JsonObjectDecoder.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_0
invokespecial io.netty.handler.codec.json.JsonObjectDecoder.<init>:(IZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
0 2 1 maxObjectLength I
MethodParameters:
Name Flags
maxObjectLength
public void <init>(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc 1048576
iload 1
invokespecial io.netty.handler.codec.json.JsonObjectDecoder.<init>:(IZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
0 2 1 streamArrayElements Z
MethodParameters:
Name Flags
streamArrayElements
public void <init>(int, boolean);
descriptor: (IZ)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 io.netty.handler.codec.ByteToMessageDecoder.<init>:()V
1: iload 1
iconst_1
if_icmpge 3
2: new java.lang.IllegalArgumentException
dup
ldc "maxObjectLength must be a positive int"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: io.netty.handler.codec.json.JsonObjectDecoder int int
StackMap stack:
aload 0
iload 1
putfield io.netty.handler.codec.json.JsonObjectDecoder.maxObjectLength:I
4: aload 0
iload 2
putfield io.netty.handler.codec.json.JsonObjectDecoder.streamArrayElements:Z
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/json/JsonObjectDecoder;
0 6 1 maxObjectLength I
0 6 2 streamArrayElements Z
MethodParameters:
Name Flags
maxObjectLength
streamArrayElements
protected 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: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
iconst_m1
if_icmpne 3
1: aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.idx:I
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
if_icmple 5
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.lastReaderIndex:I
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
if_icmpeq 5
4: aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.idx:I
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.lastReaderIndex:I
isub
iadd
putfield io.netty.handler.codec.json.JsonObjectDecoder.idx:I
5: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.idx:I
istore 4
start local 4 6: aload 2
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
istore 5
start local 5 7: iload 5
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.maxObjectLength:I
if_icmple 56
8: aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
9: aload 0
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.reset:()V
10: new io.netty.handler.codec.TooLongFrameException
dup
11: new java.lang.StringBuilder
dup
ldc "object length exceeds "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.maxObjectLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes discarded"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial io.netty.handler.codec.TooLongFrameException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: int int
StackMap stack:
aload 2
iload 4
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
istore 6
start local 6 14: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
iconst_1
if_icmpne 23
15: aload 0
iload 6
aload 2
iload 4
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.decodeByte:(BLio/netty/buffer/ByteBuf;I)V
16: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
ifne 55
17: aload 0
aload 1
aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
iload 4
iconst_1
iadd
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.extractObject:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
astore 7
start local 7 18: aload 7
ifnull 20
19: aload 3
aload 7
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
20: StackMap locals: int io.netty.buffer.ByteBuf
StackMap stack:
aload 2
iload 4
iconst_1
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
21: aload 0
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.reset:()V
end local 7 22: goto 55
StackMap locals:
StackMap stack:
23: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
iconst_2
if_icmpne 43
24: aload 0
iload 6
aload 2
iload 4
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.decodeByte:(BLio/netty/buffer/ByteBuf;I)V
25: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
ifne 55
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
iconst_1
if_icmpne 26
iload 6
bipush 44
if_icmpeq 27
StackMap locals:
StackMap stack:
26: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
ifne 55
iload 6
bipush 93
if_icmpne 55
27: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 7
start local 7 28: goto 31
29: StackMap locals: int
StackMap stack:
aload 2
iconst_1
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
30: iinc 7 1
StackMap locals:
StackMap stack:
31: aload 2
iload 7
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
invokestatic java.lang.Character.isWhitespace:(I)Z
ifne 29
end local 7 32: iload 4
iconst_1
isub
istore 7
start local 7 33: goto 35
34: StackMap locals:
StackMap stack:
iinc 7 -1
35: StackMap locals:
StackMap stack:
iload 7
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
if_icmplt 36
aload 2
iload 7
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
invokestatic java.lang.Character.isWhitespace:(I)Z
ifne 34
36: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
iload 7
iconst_1
iadd
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
isub
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.extractObject:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/buffer/ByteBuf;II)Lio/netty/buffer/ByteBuf;
astore 8
start local 8 37: aload 8
ifnull 39
38: aload 3
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
39: StackMap locals: io.netty.buffer.ByteBuf
StackMap stack:
aload 2
iload 4
iconst_1
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
40: iload 6
bipush 93
if_icmpne 55
41: aload 0
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.reset:()V
end local 8 end local 7 42: goto 55
StackMap locals:
StackMap stack:
43: iload 6
bipush 123
if_icmpeq 44
iload 6
bipush 91
if_icmpne 48
44: StackMap locals:
StackMap stack:
aload 0
iload 6
invokevirtual io.netty.handler.codec.json.JsonObjectDecoder.initDecoding:(B)V
45: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
iconst_2
if_icmpne 55
46: aload 2
iconst_1
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
47: goto 55
StackMap locals:
StackMap stack:
48: iload 6
invokestatic java.lang.Character.isWhitespace:(I)Z
ifeq 51
49: aload 2
iconst_1
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
50: goto 55
51: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
52: new io.netty.handler.codec.CorruptedFrameException
dup
53: new java.lang.StringBuilder
dup
ldc "invalid JSON received at byte position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokestatic io.netty.buffer.ByteBufUtil.hexDump:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
54: invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
end local 6 55: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
56: iload 4
iload 5
if_icmplt 13
57: aload 2
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
ifne 60
58: aload 0
iconst_0
putfield io.netty.handler.codec.json.JsonObjectDecoder.idx:I
59: goto 61
60: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield io.netty.handler.codec.json.JsonObjectDecoder.idx:I
61: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
putfield io.netty.handler.codec.json.JsonObjectDecoder.lastReaderIndex:I
62: 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 63 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
0 63 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 63 2 in Lio/netty/buffer/ByteBuf;
0 63 3 out Ljava/util/List<Ljava/lang/Object;>;
6 63 4 idx I
7 63 5 wrtIdx I
14 55 6 c B
18 22 7 json Lio/netty/buffer/ByteBuf;
28 32 7 i I
33 42 7 idxNoSpaces I
37 42 8 json Lio/netty/buffer/ByteBuf;
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 io.netty.buffer.ByteBuf extractObject(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/json/JsonObjectDecoder;
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 decodeByte(byte, io.netty.buffer.ByteBuf, int);
descriptor: (BLio/netty/buffer/ByteBuf;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
bipush 123
if_icmpeq 1
iload 1
bipush 91
if_icmpne 4
StackMap locals:
StackMap stack:
1: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
ifne 4
2: aload 0
dup
getfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
iconst_1
iadd
putfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
3: goto 21
StackMap locals:
StackMap stack:
4: iload 1
bipush 125
if_icmpeq 5
iload 1
bipush 93
if_icmpne 8
StackMap locals:
StackMap stack:
5: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
ifne 8
6: aload 0
dup
getfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
iconst_1
isub
putfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
7: goto 21
StackMap locals:
StackMap stack:
8: iload 1
bipush 34
if_icmpne 21
9: aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
ifne 12
10: aload 0
iconst_1
putfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
11: goto 21
12: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 13: iinc 3 -1
14: goto 18
15: StackMap locals: int
StackMap stack:
aload 2
iload 3
invokevirtual io.netty.buffer.ByteBuf.getByte:(I)B
bipush 92
if_icmpne 19
16: iinc 4 1
17: iinc 3 -1
18: StackMap locals:
StackMap stack:
iload 3
ifge 15
19: StackMap locals:
StackMap stack:
iload 4
iconst_2
irem
ifne 21
20: aload 0
iconst_0
putfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
end local 4 21: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
0 22 1 c B
0 22 2 in Lio/netty/buffer/ByteBuf;
0 22 3 idx I
13 21 4 backslashCount I
MethodParameters:
Name Flags
c
in
idx
private void initDecoding(byte);
descriptor: (B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
1: iload 1
bipush 91
if_icmpne 4
aload 0
getfield io.netty.handler.codec.json.JsonObjectDecoder.streamArrayElements:Z
ifeq 4
2: aload 0
iconst_2
putfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
0 6 1 openingBrace B
MethodParameters:
Name Flags
openingBrace
private void reset();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield io.netty.handler.codec.json.JsonObjectDecoder.insideString:Z
1: aload 0
iconst_0
putfield io.netty.handler.codec.json.JsonObjectDecoder.state:I
2: aload 0
iconst_0
putfield io.netty.handler.codec.json.JsonObjectDecoder.openBraces:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/json/JsonObjectDecoder;
}
SourceFile: "JsonObjectDecoder.java"