class jdk.incubator.http.ResponseContent$ChunkedBodyParser implements jdk.incubator.http.ResponseContent$BodyParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.incubator.http.ResponseContent$ChunkedBodyParser
super_class: java.lang.Object
{
final java.nio.ByteBuffer READMORE;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0010) ACC_FINAL
final java.util.function.Consumer<java.lang.Throwable> onComplete;
descriptor: Ljava/util/function/Consumer;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Consumer<Ljava/lang/Throwable;>;
final java.lang.System$Logger debug;
descriptor: Ljava/lang/System$Logger;
flags: (0x0010) ACC_FINAL
final java.lang.String dbgTag;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
volatile java.lang.Throwable closedExceptionally;
descriptor: Ljava/lang/Throwable;
flags: (0x0040) ACC_VOLATILE
volatile int partialChunklen;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile int chunklen;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile int bytesremaining;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile boolean cr;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
volatile int bytesToConsume;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile jdk.incubator.http.ResponseContent$ChunkState state;
descriptor: Ljdk/incubator/http/ResponseContent$ChunkState;
flags: (0x0040) ACC_VOLATILE
volatile jdk.incubator.http.AbstractSubscription sub;
descriptor: Ljdk/incubator/http/AbstractSubscription;
flags: (0x0040) ACC_VOLATILE
final jdk.incubator.http.ResponseContent this$0;
descriptor: Ljdk/incubator/http/ResponseContent;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljdk/incubator/http/ResponseContent;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.util.function.Consumer<java.lang.Throwable>);
descriptor: (Ljdk/incubator/http/ResponseContent;Ljava/util/function/Consumer;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic jdk.incubator.http.internal.common.Utils.EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.READMORE:Ljava/nio/ByteBuffer;
2: aload 0
aload 0
invokedynamic get(Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/incubator/http/ResponseContent$ChunkedBodyParser.dbgString()Ljava/lang/String; (5)
()Ljava/lang/String;
getstatic jdk.incubator.http.ResponseContent.DEBUG:Z
invokestatic jdk.incubator.http.internal.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljava/lang/System$Logger;
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
3: aload 0
new java.lang.StringBuilder
dup
aload 1
getfield jdk.incubator.http.ResponseContent.dbgTag:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/ChunkedBodyParser"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.dbgTag:Ljava/lang/String;
4: aload 0
iconst_0
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.partialChunklen:I
5: aload 0
iconst_m1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.chunklen:I
6: aload 0
iconst_0
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.cr:Z
7: aload 0
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_LENGTH:Ljdk/incubator/http/ResponseContent$ChunkState;
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
8: aload 0
aload 2
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.onComplete:Ljava/util/function/Consumer;
9: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 10 2 onComplete Ljava/util/function/Consumer<Ljava/lang/Throwable;>;
Signature: (Ljava/util/function/Consumer<Ljava/lang/Throwable;>;)V
MethodParameters:
Name Flags
this$0 final
onComplete
java.lang.String dbgString();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.dbgTag:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
public void onSubscribe(jdk.incubator.http.AbstractSubscription);
descriptor: (Ljdk/incubator/http/AbstractSubscription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
aload 0
invokedynamic get(Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/incubator/http/ResponseContent$ChunkedBodyParser.lambda$1()Ljava/lang/String; (7)
()Ljava/lang/String;
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/util/function/Supplier;)V
1: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
getfield jdk.incubator.http.ResponseContent.pusher:Ljdk/incubator/http/HttpResponse$BodySubscriber;
aload 0
aload 1
dup_x1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.sub:Ljdk/incubator/http/AbstractSubscription;
invokeinterface jdk.incubator.http.HttpResponse$BodySubscriber.onSubscribe:(Ljava/util/concurrent/Flow$Subscription;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 3 1 sub Ljdk/incubator/http/AbstractSubscription;
MethodParameters:
Name Flags
sub
public void accept(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.closedExceptionally:Ljava/lang/Throwable;
ifnull 3
1: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
aload 0
invokedynamic get(Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/incubator/http/ResponseContent$ChunkedBodyParser.lambda$2()Ljava/lang/String; (7)
()Ljava/lang/String;
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/util/function/Supplier;)V
2: return
3: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 5: StackMap locals: int java.util.List
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.tryPushOneHunk:(Ljava/nio/ByteBuffer;Ljava/util/List;)Z
ifeq 18
6: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 10
7: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.sub:Ljdk/incubator/http/AbstractSubscription;
invokevirtual jdk.incubator.http.AbstractSubscription.demand:()Ljdk/incubator/http/internal/common/Demand;
invokevirtual jdk.incubator.http.internal.common.Demand.tryDecrement:()Z
istore 4
start local 4 8: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 9
iload 4
ifne 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
getfield jdk.incubator.http.ResponseContent.pusher:Ljdk/incubator/http/HttpResponse$BodySubscriber;
aload 3
invokeinterface jdk.incubator.http.HttpResponse$BodySubscriber.onNext:(Ljava/lang/Object;)V
end local 4 10: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
invokedynamic get()Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/incubator/http/ResponseContent$ChunkedBodyParser.lambda$3()Ljava/lang/String; (6)
()Ljava/lang/String;
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/util/function/Supplier;)V
11: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 12
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.closedExceptionally:Ljava/lang/Throwable;
ifnull 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 13
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
getstatic jdk.incubator.http.ResponseContent$ChunkState.DONE:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpeq 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
getfield jdk.incubator.http.ResponseContent.onFinished:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
14: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
getfield jdk.incubator.http.ResponseContent.pusher:Ljdk/incubator/http/HttpResponse$BodySubscriber;
invokeinterface jdk.incubator.http.HttpResponse$BodySubscriber.onComplete:()V
15: iconst_1
istore 2
16: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.onComplete:Ljava/util/function/Consumer;
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.closedExceptionally:Ljava/lang/Throwable;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
17: goto 19
18: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 5
19: StackMap locals:
StackMap stack:
iload 2
ifne 23
aload 3
invokeinterface java.util.List.isEmpty:()Z
ifne 23
20: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.sub:Ljdk/incubator/http/AbstractSubscription;
invokevirtual jdk.incubator.http.AbstractSubscription.demand:()Ljdk/incubator/http/internal/common/Demand;
invokevirtual jdk.incubator.http.internal.common.Demand.tryDecrement:()Z
istore 4
start local 4 21: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 22
iload 4
ifne 22
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
getfield jdk.incubator.http.ResponseContent.pusher:Ljdk/incubator/http/HttpResponse$BodySubscriber;
aload 3
invokeinterface jdk.incubator.http.HttpResponse$BodySubscriber.onNext:(Ljava/lang/Object;)V
end local 4 23: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 27
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
getstatic jdk.incubator.http.ResponseContent$ChunkState.DONE:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpeq 27
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 27
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 24: StackMap locals: jdk.incubator.http.ResponseContent$ChunkedBodyParser java.nio.ByteBuffer int
StackMap stack: java.lang.Throwable
astore 3
start local 3 25: aload 0
aload 3
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.closedExceptionally:Ljava/lang/Throwable;
26: iload 2
ifne 27
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.onComplete:Ljava/util/function/Consumer;
aload 3
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 3 27: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 28 1 b Ljava/nio/ByteBuffer;
4 28 2 completed Z
5 24 3 out Ljava/util/List<Ljava/nio/ByteBuffer;>;
8 10 4 hasDemand Z
21 23 4 hasDemand Z
25 27 3 t Ljava/lang/Throwable;
Exception table:
from to target type
4 24 24 Class java.lang.Throwable
MethodParameters:
Name Flags
b
private int tryReadChunkLen(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 11
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_LENGTH:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpeq 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
istore 2
start local 2 2: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.cr:Z
ifeq 6
3: iload 2
bipush 10
if_icmpne 5
4: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.partialChunklen:I
ireturn
5: StackMap locals: int
StackMap stack:
new java.io.IOException
dup
ldc "invalid chunk header"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iload 2
bipush 13
if_icmpne 9
7: aload 0
iconst_1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.cr:Z
8: goto 11
9: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.toDigit:(I)I
istore 3
start local 3 10: aload 0
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.partialChunklen:I
bipush 16
imul
iload 3
iadd
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.partialChunklen:I
end local 3 end local 2 11: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 1
12: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 13 1 chunkbuf Ljava/nio/ByteBuffer;
2 11 2 c I
10 11 3 digit I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chunkbuf
private int tryConsumeBytes(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesToConsume:I
istore 2
start local 2 1: iload 2
ifle 13
2: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 2
invokestatic java.lang.Math.min:(II)I
istore 3
start local 3 3: getstatic jdk.incubator.http.internal.common.Utils.ASSERTIONSENABLED:Z
ifeq 10
4: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 6
iload 2
iconst_2
if_icmpgt 5
iload 3
iconst_2
if_icmple 6
StackMap locals: int int
StackMap stack:
5: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
astore 4
start local 4 7: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 8
iload 2
iconst_2
if_icmpne 8
iload 3
ifle 8
aload 4
invokevirtual java.nio.ByteBuffer.get:()B
bipush 13
if_icmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: java.nio.ByteBuffer
StackMap stack:
getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 10
iload 2
iconst_1
if_icmpeq 9
iload 3
iconst_2
if_icmpne 10
StackMap locals:
StackMap stack:
9: aload 4
invokevirtual java.nio.ByteBuffer.get:()B
bipush 10
if_icmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 4 10: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
iload 3
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
11: iload 2
iload 3
isub
istore 2
12: aload 0
iload 2
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesToConsume:I
end local 3 13: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 14
iload 2
ifge 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 15 1 chunkbuf Ljava/nio/ByteBuffer;
1 15 2 n I
3 13 3 e I
7 10 4 tmp Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chunkbuf
java.nio.ByteBuffer tryReadOneHunk(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesremaining:I
istore 2
start local 2 1: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesToConsume:I
istore 3
start local 3 2: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
astore 4
start local 4 3: aload 4
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_LENGTH:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpne 12
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.chunklen:I
iconst_m1
if_icmpne 12
4: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
aload 1
invokedynamic get(Ljava/nio/ByteBuffer;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/incubator/http/ResponseContent$ChunkedBodyParser.lambda$4(Ljava/nio/ByteBuffer;)Ljava/lang/String; (6)
()Ljava/lang/String;
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/util/function/Supplier;)V
5: aload 0
aload 0
aload 1
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.tryReadChunkLen:(Ljava/nio/ByteBuffer;)I
dup_x1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.chunklen:I
istore 5
start local 5 6: iload 5
iconst_m1
if_icmpne 7
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.READMORE:Ljava/nio/ByteBuffer;
areturn
7: StackMap locals: jdk.incubator.http.ResponseContent$ChunkedBodyParser java.nio.ByteBuffer int int jdk.incubator.http.ResponseContent$ChunkState int
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Got chunk len %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
8: aload 0
iconst_0
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.cr:Z
aload 0
iconst_0
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.partialChunklen:I
9: aload 0
iload 5
dup_x1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesremaining:I
istore 2
10: iload 5
ifne 11
aload 0
iconst_2
dup_x1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesToConsume:I
istore 3
goto 12
11: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_DATA:Ljdk/incubator/http/ResponseContent$ChunkState;
dup_x1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
astore 4
end local 5 12: StackMap locals:
StackMap stack:
iload 3
ifle 19
13: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
14: ldc "Trying to consume bytes: %d (remaining in buffer: %s)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
15: iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
16: invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
17: aload 0
aload 1
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.tryConsumeBytes:(Ljava/nio/ByteBuffer;)I
ifle 19
18: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.READMORE:Ljava/nio/ByteBuffer;
areturn
19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesToConsume:I
istore 3
20: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 21
iload 3
ifeq 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack:
aload 4
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_LENGTH:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpne 27
22: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.chunklen:I
istore 5
start local 5 23: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 24
iload 5
ifeq 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
24: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "No more chunks: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
25: aload 0
getstatic jdk.incubator.http.ResponseContent$ChunkState.DONE:Ljdk/incubator/http/ResponseContent$ChunkState;
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
26: aconst_null
areturn
end local 5 27: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.chunklen:I
istore 5
start local 5 28: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 29
iload 5
ifgt 29
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
29: StackMap locals: int
StackMap stack:
getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 30
aload 4
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_DATA:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpeq 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.READMORE:Ljava/nio/ByteBuffer;
astore 6
start local 6 31: iload 2
ifle 41
32: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 7
start local 7 33: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Reading chunk: available %d, needed %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
34: iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
35: invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
36: iload 7
iload 2
invokestatic java.lang.Math.min:(II)I
istore 8
start local 8 37: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Returning chunk bytes: %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
38: aload 1
iload 8
invokestatic jdk.incubator.http.internal.common.Utils.sliceWithLimitedCapacity:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
astore 6
39: aload 0
dup
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesremaining:I
iload 8
isub
dup_x1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesremaining:I
istore 2
40: iload 2
ifne 41
aload 0
iconst_2
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.bytesToConsume:I
end local 8 end local 7 41: StackMap locals: java.nio.ByteBuffer
StackMap stack:
getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 42
iload 2
ifge 42
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
42: StackMap locals:
StackMap stack:
iload 2
ifne 53
43: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
44: ldc "No more bytes to read - %d yet to consume."
iconst_1
anewarray java.lang.Object
dup
iconst_0
45: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
46: invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
47: aload 0
aload 1
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.tryConsumeBytes:(Ljava/nio/ByteBuffer;)I
ifne 53
48: aload 0
iconst_m1
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.chunklen:I
49: aload 0
iconst_0
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.partialChunklen:I
50: aload 0
iconst_0
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.cr:Z
51: aload 0
getstatic jdk.incubator.http.ResponseContent$ChunkState.READING_LENGTH:Ljdk/incubator/http/ResponseContent$ChunkState;
putfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
52: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Ready to read next chunk"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
53: StackMap locals:
StackMap stack:
aload 6
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.READMORE:Ljava/nio/ByteBuffer;
if_acmpne 55
54: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Need more data"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
55: StackMap locals:
StackMap stack:
aload 6
areturn
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 56 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 56 1 chunk Ljava/nio/ByteBuffer;
1 56 2 unfulfilled I
2 56 3 toconsume I
3 56 4 st Ljdk/incubator/http/ResponseContent$ChunkState;
6 12 5 clen I
23 27 5 clen I
28 56 5 clen I
31 56 6 returnBuffer Ljava/nio/ByteBuffer;
33 41 7 bytesread I
37 41 8 bytes2return I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
chunk
private boolean tryPushOneHunk(java.nio.ByteBuffer, java.util.List<java.nio.ByteBuffer>);
descriptor: (Ljava/nio/ByteBuffer;Ljava/util/List;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.incubator.http.ResponseContent$ChunkedBodyParser.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.state:Ljdk/incubator/http/ResponseContent$ChunkState;
getstatic jdk.incubator.http.ResponseContent$ChunkState.DONE:Ljdk/incubator/http/ResponseContent$ChunkState;
if_acmpne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.tryReadOneHunk:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
astore 3
start local 3 2: aload 3
ifnull 10
3: aload 3
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 9
4: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Sending chunk to consumer (%d)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
5: aload 3
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
6: invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
7: aload 2
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.debug:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Chunk sent."
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
9: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 11 1 b Ljava/nio/ByteBuffer;
0 11 2 out Ljava/util/List<Ljava/nio/ByteBuffer;>;
2 11 3 b1 Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/ByteBuffer;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Z
MethodParameters:
Name Flags
b
out
private int toDigit(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 48
if_icmplt 2
iload 1
bipush 57
if_icmpgt 2
1: iload 1
bipush 48
isub
ireturn
2: StackMap locals:
StackMap stack:
iload 1
bipush 65
if_icmplt 4
iload 1
bipush 70
if_icmpgt 4
3: iload 1
bipush 65
isub
bipush 10
iadd
ireturn
4: StackMap locals:
StackMap stack:
iload 1
bipush 97
if_icmplt 6
iload 1
bipush 102
if_icmpgt 6
5: iload 1
bipush 97
isub
bipush 10
iadd
ireturn
6: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Invalid chunk header byte "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
0 7 1 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
public void accept(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.nio.ByteBuffer
invokevirtual jdk.incubator.http.ResponseContent$ChunkedBodyParser.accept:(Ljava/nio/ByteBuffer;)V
return
LocalVariableTable:
Start End Slot Name Signature
private java.lang.String lambda$1();
descriptor: ()Ljava/lang/String;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "onSubscribe: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.this$0:Ljdk/incubator/http/ResponseContent;
getfield jdk.incubator.http.ResponseContent.pusher:Ljdk/incubator/http/HttpResponse$BodySubscriber;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
private java.lang.String lambda$2();
descriptor: ()Ljava/lang/String;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "already closed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
getfield jdk.incubator.http.ResponseContent$ChunkedBodyParser.closedExceptionally:Ljava/lang/Throwable;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/ResponseContent$ChunkedBodyParser;
private static java.lang.String lambda$3();
descriptor: ()Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=0, args_size=0
0: ldc "done!"
areturn
LocalVariableTable:
Start End Slot Name Signature
private static java.lang.String lambda$4(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: new java.lang.StringBuilder
dup
ldc "Trying to read chunk len (remaining in buffer:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ResponseContent.java"
NestHost: jdk.incubator.http.ResponseContent
InnerClasses:
public abstract Logger = java.lang.System$Logger of java.lang.System
public final Level = java.lang.System$Logger$Level of java.lang.System$Logger
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Subscription = java.util.concurrent.Flow$Subscription of java.util.concurrent.Flow
public abstract BodySubscriber = jdk.incubator.http.HttpResponse$BodySubscriber of jdk.incubator.http.HttpResponse
abstract BodyParser = jdk.incubator.http.ResponseContent$BodyParser of jdk.incubator.http.ResponseContent
final ChunkState = jdk.incubator.http.ResponseContent$ChunkState of jdk.incubator.http.ResponseContent
ChunkedBodyParser = jdk.incubator.http.ResponseContent$ChunkedBodyParser of jdk.incubator.http.ResponseContent