class io.undertow.conduits.ChunkReader<T extends org.xnio.conduits.Conduit>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.undertow.conduits.ChunkReader
super_class: java.lang.Object
{
private static final long FLAG_FINISHED;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4611686018427387904
private static final long FLAG_READING_LENGTH;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2305843009213693952
private static final long FLAG_READING_TILL_END_OF_LINE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1152921504606846976
private static final long FLAG_READING_NEWLINE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 576460752303423488
private static final long FLAG_READING_AFTER_LAST;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 288230376151711744
private static final long MASK_COUNT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long LIMIT;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 576460752303423487
private long state;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final io.undertow.util.Attachable attachable;
descriptor: Lio/undertow/util/Attachable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.util.AttachmentKey<io.undertow.util.HeaderMap> trailerAttachmentKey;
descriptor: Lio/undertow/util/AttachmentKey;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/undertow/util/AttachmentKey<Lio/undertow/util/HeaderMap;>;
private io.undertow.conduits.ChunkReader<T>.TrailerParser trailerParser;
descriptor: Lio/undertow/conduits/ChunkReader$TrailerParser;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/undertow/conduits/ChunkReader<TT;>.TrailerParser;
private final T conduit;
descriptor: Lorg/xnio/conduits/Conduit;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: TT;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
bipush 56
invokestatic org.xnio.Bits.longBitMask:(II)J
putstatic io.undertow.conduits.ChunkReader.MASK_COUNT:J
1: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(io.undertow.util.Attachable, io.undertow.util.AttachmentKey<io.undertow.util.HeaderMap>, );
descriptor: (Lio/undertow/util/Attachable;Lio/undertow/util/AttachmentKey;Lorg/xnio/conduits/Conduit;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.undertow.conduits.ChunkReader.attachable:Lio/undertow/util/Attachable;
2: aload 0
aload 2
putfield io.undertow.conduits.ChunkReader.trailerAttachmentKey:Lio/undertow/util/AttachmentKey;
3: aload 0
aload 3
putfield io.undertow.conduits.ChunkReader.conduit:Lorg/xnio/conduits/Conduit;
4: aload 0
ldc 2305843009213693952
putfield io.undertow.conduits.ChunkReader.state:J
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/conduits/ChunkReader<TT;>;
0 6 1 attachable Lio/undertow/util/Attachable;
0 6 2 trailerAttachmentKey Lio/undertow/util/AttachmentKey<Lio/undertow/util/HeaderMap;>;
0 6 3 conduit TT;
Signature: (Lio/undertow/util/Attachable;Lio/undertow/util/AttachmentKey<Lio/undertow/util/HeaderMap;>;TT;)V
MethodParameters:
Name Flags
attachable final
trailerAttachmentKey final
conduit
public long readChunk(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.ChunkReader.state:J
lstore 2
start local 2 1: aload 0
getfield io.undertow.conduits.ChunkReader.state:J
getstatic io.undertow.conduits.ChunkReader.MASK_COUNT:J
land
lstore 4
start local 4 2: lload 4
lconst_0
lcmp
ifle 4
aload 0
getfield io.undertow.conduits.ChunkReader.state:J
ldc 4323455642275676160
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifne 4
3: lload 4
lreturn
4: StackMap locals: long long
StackMap stack:
lload 2
getstatic io.undertow.conduits.ChunkReader.MASK_COUNT:J
ldc -1
lxor
land
lstore 6
start local 6 5: lload 2
ldc 288230376151711744
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 21
6: aload 0
aload 1
invokevirtual io.undertow.conduits.ChunkReader.handleChunkedRequestEnd:(Ljava/nio/ByteBuffer;)I
istore 8
start local 8 7: iload 8
iconst_m1
if_icmpne 11
8: lload 6
ldc 4611686018427387904
lor
lstore 6
9: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
10: ldc -1
lreturn
11: StackMap locals: long int
StackMap stack:
aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
12: lconst_0
lreturn
end local 8 13: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 8
start local 8 14: iload 8
bipush 10
if_icmpne 17
15: lload 6
ldc -576460752303423489
land
ldc 2305843009213693952
lor
lstore 6
16: goto 18
end local 8 17: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 13
18: StackMap locals:
StackMap stack:
lload 6
ldc 576460752303423488
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 21
19: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
20: lconst_0
lreturn
21: StackMap locals:
StackMap stack:
lload 6
ldc 576460752303423488
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifne 17
22: goto 41
23: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 8
start local 8 24: iload 8
bipush 48
if_icmplt 25
iload 8
bipush 57
if_icmple 27
StackMap locals: int
StackMap stack:
25: iload 8
bipush 97
if_icmplt 26
iload 8
bipush 102
if_icmple 27
StackMap locals:
StackMap stack:
26: iload 8
bipush 65
if_icmplt 32
iload 8
bipush 70
if_icmpgt 32
27: StackMap locals:
StackMap stack:
lload 4
ldc 576460752303423487
lcmp
ifle 29
28: getstatic io.undertow.UndertowMessages.MESSAGES:Lio/undertow/UndertowMessages;
invokeinterface io.undertow.UndertowMessages.chunkSizeTooLarge:()Ljava/io/IOException;
athrow
29: StackMap locals:
StackMap stack:
lload 4
iconst_4
lshl
lstore 4
30: lload 4
iload 8
i2c
bipush 16
invokestatic java.lang.Character.digit:(CI)I
i2l
ladd
lstore 4
31: goto 37
32: StackMap locals:
StackMap stack:
iload 8
bipush 10
if_icmpne 35
33: lload 6
ldc -2305843009213693953
land
lstore 6
34: goto 38
35: StackMap locals:
StackMap stack:
lload 6
ldc -2305843009213693953
land
ldc 1152921504606846976
lor
lstore 6
36: goto 38
end local 8 37: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 23
38: StackMap locals:
StackMap stack:
lload 6
ldc 2305843009213693952
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 41
39: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
40: lconst_0
lreturn
41: StackMap locals:
StackMap stack:
lload 6
ldc 2305843009213693952
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifne 37
42: goto 50
43: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
bipush 10
if_icmpne 46
44: lload 6
ldc -1152921504606846977
land
lstore 6
45: goto 47
46: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 43
47: StackMap locals:
StackMap stack:
lload 6
ldc 1152921504606846976
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 50
48: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
49: lconst_0
lreturn
50: StackMap locals:
StackMap stack:
lload 6
ldc 1152921504606846976
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifne 46
51: lload 6
ldc 4035225266123964416
invokestatic org.xnio.Bits.allAreClear:(JJ)Z
ifeq 60
lload 4
lconst_0
lcmp
ifne 60
52: lload 6
ldc 288230376151711744
lor
lstore 6
53: aload 0
aload 1
invokevirtual io.undertow.conduits.ChunkReader.handleChunkedRequestEnd:(Ljava/nio/ByteBuffer;)I
istore 8
start local 8 54: iload 8
iconst_m1
if_icmpne 58
55: lload 6
ldc 4611686018427387904
lor
lstore 6
56: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
57: ldc -1
lreturn
58: StackMap locals: int
StackMap stack:
aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
59: lconst_0
lreturn
end local 8 60: StackMap locals:
StackMap stack:
lload 4
lstore 10
61: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
62: lload 10
lreturn
63: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
64: aload 0
lload 6
lload 4
lor
putfield io.undertow.conduits.ChunkReader.state:J
65: aload 9
athrow
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lio/undertow/conduits/ChunkReader<TT;>;
0 66 1 buf Ljava/nio/ByteBuffer;
1 66 2 oldVal J
2 66 4 chunkRemaining J
5 66 6 newVal J
7 13 8 ret I
14 17 8 b B
24 37 8 b B
54 60 8 ret I
Exception table:
from to target type
5 9 63 any
13 19 63 any
21 39 63 any
41 48 63 any
50 56 63 any
60 61 63 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf final
public long getChunkRemaining();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.conduits.ChunkReader.state:J
ldc 4611686018427387904
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 2
1: ldc -1
lreturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkReader.state:J
ldc 4323455642275676160
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 4
3: lconst_0
lreturn
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkReader.state:J
getstatic io.undertow.conduits.ChunkReader.MASK_COUNT:J
land
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/conduits/ChunkReader<TT;>;
public void setChunkRemaining(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
iflt 1
aload 0
getfield io.undertow.conduits.ChunkReader.state:J
ldc 4323455642275676160
invokestatic org.xnio.Bits.anyAreSet:(JJ)Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.conduits.ChunkReader.state:J
lstore 3
start local 3 3: lload 3
getstatic io.undertow.conduits.ChunkReader.MASK_COUNT:J
land
lstore 5
start local 5 4: lload 1
lconst_0
lcmp
ifne 6
lload 5
lconst_0
lcmp
ifeq 6
5: lload 3
ldc 576460752303423488
lor
lstore 3
6: StackMap locals: long long
StackMap stack:
aload 0
lload 3
getstatic io.undertow.conduits.ChunkReader.MASK_COUNT:J
ldc -1
lxor
land
lload 1
lor
putfield io.undertow.conduits.ChunkReader.state:J
7: return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/conduits/ChunkReader<TT;>;
0 8 1 remaining J
3 8 3 old J
4 8 5 oldRemaining J
MethodParameters:
Name Flags
remaining final
private int handleChunkedRequestEnd(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.conduits.ChunkReader.trailerParser:Lio/undertow/conduits/ChunkReader$TrailerParser;
ifnull 9
1: aload 0
getfield io.undertow.conduits.ChunkReader.trailerParser:Lio/undertow/conduits/ChunkReader$TrailerParser;
aload 1
invokevirtual io.undertow.conduits.ChunkReader$TrailerParser.handle:(Ljava/nio/ByteBuffer;)I
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 2
start local 2 3: iload 2
bipush 10
if_icmpne 5
4: iconst_m1
ireturn
5: StackMap locals: int
StackMap stack:
iload 2
bipush 13
if_icmpeq 9
6: aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
7: aload 0
new io.undertow.conduits.ChunkReader$TrailerParser
dup
aload 0
invokespecial io.undertow.conduits.ChunkReader$TrailerParser.<init>:(Lio/undertow/conduits/ChunkReader;)V
putfield io.undertow.conduits.ChunkReader.trailerParser:Lio/undertow/conduits/ChunkReader$TrailerParser;
8: aload 0
getfield io.undertow.conduits.ChunkReader.trailerParser:Lio/undertow/conduits/ChunkReader$TrailerParser;
aload 1
invokevirtual io.undertow.conduits.ChunkReader$TrailerParser.handle:(Ljava/nio/ByteBuffer;)I
ireturn
end local 2 9: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
10: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/undertow/conduits/ChunkReader<TT;>;
0 11 1 buffer Ljava/nio/ByteBuffer;
3 9 2 b B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
}
Signature: <T::Lorg/xnio/conduits/Conduit;>Ljava/lang/Object;
SourceFile: "ChunkReader.java"
NestMembers:
io.undertow.conduits.ChunkReader$TrailerParser
InnerClasses:
private final TrailerParser = io.undertow.conduits.ChunkReader$TrailerParser of io.undertow.conduits.ChunkReader