class jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream extends java.io.InputStream implements jdk.incubator.http.HttpResponse$BodySubscriber<java.io.InputStream>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream
super_class: java.io.InputStream
{
static final boolean DEBUG;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final int MAX_BUFFERS_IN_QUEUE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final java.nio.ByteBuffer LAST_BUFFER;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.List<java.nio.ByteBuffer> LAST_LIST;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/nio/ByteBuffer;>;
private static final java.lang.System$Logger DEBUG_LOGGER;
descriptor: Ljava/lang/System$Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.BlockingQueue<java.util.List<java.nio.ByteBuffer>> buffers;
descriptor: Ljava/util/concurrent/BlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/BlockingQueue<Ljava/util/List<Ljava/nio/ByteBuffer;>;>;
private volatile java.util.concurrent.Flow$Subscription subscription;
descriptor: Ljava/util/concurrent/Flow$Subscription;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean closed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.lang.Throwable failed;
descriptor: Ljava/lang/Throwable;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.util.Iterator<java.nio.ByteBuffer> currentListItr;
descriptor: Ljava/util/Iterator;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Iterator<Ljava/nio/ByteBuffer;>;
private volatile java.nio.ByteBuffer currentBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.atomic.AtomicBoolean subscribed;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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=2, locals=0, args_size=0
0: ldc Ljdk/incubator/http/ResponseSubscribers;
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.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
3: getstatic jdk.incubator.http.internal.common.Utils.DEBUG:Z
putstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG:Z
4: iconst_0
newarray 8
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
5: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
invokestatic java.util.List.of:(Ljava/lang/Object;)Ljava/util/List;
putstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_LIST:Ljava/util/List;
6: ldc "HttpResponseInputStream"
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic get(Ljava/lang/String;)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;
java/lang/String.toString()Ljava/lang/String; (5)
()Ljava/lang/String;
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG:Z
invokestatic jdk.incubator.http.internal.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljava/lang/System$Logger;
7: putstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
8: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokespecial jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscribed:Ljava/util/concurrent/atomic/AtomicBoolean;
2: iload 1
ifgt 3
iconst_1
goto 4
StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream int
StackMap stack:
3: iload 1
StackMap locals:
StackMap stack: int
4: istore 2
start local 2 5: aload 0
new java.util.concurrent.ArrayBlockingQueue
dup
iload 2
iconst_1
iadd
invokespecial java.util.concurrent.ArrayBlockingQueue.<init>:(I)V
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
0 7 1 maxBuffers I
5 7 2 capacity I
MethodParameters:
Name Flags
maxBuffers
public java.util.concurrent.CompletionStage<java.io.InputStream> getBody();
descriptor: ()Ljava/util/concurrent/CompletionStage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.concurrent.CompletableFuture.completedStage:(Ljava/lang/Object;)Ljava/util/concurrent/CompletionStage;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
Signature: ()Ljava/util/concurrent/CompletionStage<Ljava/io/InputStream;>;
private java.nio.ByteBuffer current();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: goto 28
1: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.closed:Z
ifne 2
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
ifnull 3
2: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "closed"
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
if_acmpne 4
goto 29
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
ifnull 5
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifne 22
5: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Taking list of Buffers"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
6: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.take:()Ljava/lang/Object;
checkcast java.util.List
astore 1
start local 1 7: aload 0
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
8: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "List of Buffers Taken"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
9: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.closed:Z
ifne 10
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
ifnull 11
10: StackMap locals: java.util.List
StackMap stack:
new java.io.IOException
dup
ldc "closed"
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
11: StackMap locals:
StackMap stack:
aload 1
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_LIST:Ljava/util/List;
if_acmpne 15
12: aload 0
aconst_null
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
13: aload 0
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
14: goto 29
15: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscription:Ljava/util/concurrent/Flow$Subscription;
astore 2
start local 2 16: aload 2
ifnull 19
17: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Increased demand by 1"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
18: aload 2
lconst_1
invokeinterface java.util.concurrent.Flow$Subscription.request:(J)V
19: StackMap locals: java.util.concurrent.Flow$Subscription
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
ifne 20
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
ifnonnull 20
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
20: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.List.isEmpty:()Z
ifeq 22
21: goto 28
end local 2 end local 1 22: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
ifne 23
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
ifnonnull 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
ifne 24
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
24: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "Next Buffer"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
25: aload 0
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentListItr:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
26: goto 28
StackMap locals:
StackMap stack: java.lang.InterruptedException
27: pop
28: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
ifnull 1
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 1
29: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
ifne 30
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
if_acmpeq 30
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 30
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
30: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.currentBuffer:Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
7 22 1 lb Ljava/util/List<Ljava/nio/ByteBuffer;>;
16 22 2 s Ljava/util/concurrent/Flow$Subscription;
Exception table:
from to target type
4 14 27 Class java.lang.InterruptedException
15 21 27 Class java.lang.InterruptedException
22 26 27 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.current:()Ljava/nio/ByteBuffer;
dup
astore 4
start local 4 1: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
if_acmpne 2
iconst_m1
ireturn
2: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 3
invokestatic java.lang.Math.min:(II)I
istore 5
start local 5 3: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
ifne 5
iload 5
ifle 4
iload 5
aload 4
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmple 5
StackMap locals: int
StackMap stack:
4: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 4
aload 1
iload 2
iload 5
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
6: iload 5
ireturn
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 7 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
0 7 1 bytes [B
0 7 2 off I
0 7 3 len I
1 7 4 buffer Ljava/nio/ByteBuffer;
3 7 5 read I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bytes
off
len
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.current:()Ljava/nio/ByteBuffer;
dup
astore 1
start local 1 1: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_BUFFER:Ljava/nio/ByteBuffer;
if_acmpne 2
iconst_m1
ireturn
2: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
1 3 1 buffer Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
public void onSubscribe(java.util.concurrent.Flow$Subscription);
descriptor: (Ljava/util/concurrent/Flow$Subscription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscribed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifne 3
1: aload 1
invokeinterface java.util.concurrent.Flow$Subscription.cancel:()V
2: goto 28
3: StackMap locals:
StackMap stack:
aload 0
dup
astore 3
monitorenter
4: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.closed:Z
istore 2
start local 2 5: iload 2
ifne 7
6: aload 0
aload 1
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscription:Ljava/util/concurrent/Flow$Subscription;
7: StackMap locals: int jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream
StackMap stack:
aload 3
monitorexit
8: goto 11
end local 2 StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream java.util.concurrent.Flow$Subscription top jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
start local 2 11: StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream java.util.concurrent.Flow$Subscription int
StackMap stack:
iload 2
ifeq 14
12: aload 1
invokeinterface java.util.concurrent.Flow$Subscription.cancel:()V
13: return
14: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.$assertionsDisabled:Z
ifne 15
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.remainingCapacity:()I
iconst_1
if_icmpgt 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
aload 0
invokedynamic get(Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;)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/ResponseSubscribers$HttpResponseInputStream.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
16: aload 1
iconst_1
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.remainingCapacity:()I
iconst_1
isub
invokestatic java.lang.Math.max:(II)I
i2l
invokeinterface java.util.concurrent.Flow$Subscription.request:(J)V
end local 2 17: goto 28
StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream java.util.concurrent.Flow$Subscription
StackMap stack: java.lang.Throwable
18: astore 2
start local 2 19: aload 0
aload 2
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
20: aload 0
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.close:()V
21: goto 27
StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream java.util.concurrent.Flow$Subscription java.lang.Throwable
StackMap stack: java.io.IOException
22: pop
23: aload 0
aload 2
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onError:(Ljava/lang/Throwable;)V
goto 28
24: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
25: aload 0
aload 2
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onError:(Ljava/lang/Throwable;)V
26: aload 3
athrow
27: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onError:(Ljava/lang/Throwable;)V
end local 2 28: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
0 29 1 s Ljava/util/concurrent/Flow$Subscription;
5 9 2 closed Z
11 17 2 closed Z
19 28 2 t Ljava/lang/Throwable;
Exception table:
from to target type
4 8 9 any
9 10 9 any
0 13 18 Class java.lang.Throwable
14 17 18 Class java.lang.Throwable
20 21 22 Class java.io.IOException
20 23 24 any
MethodParameters:
Name Flags
s
public void onNext(java.util.List<java.nio.ByteBuffer>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "next item received"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
2: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
aload 1
invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
ifne 4
3: new java.lang.IllegalStateException
dup
ldc "queue is full"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.DEBUG_LOGGER:Ljava/lang/System$Logger;
getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
ldc "item offered"
invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
5: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 2
start local 2 7: aload 0
aload 2
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
8: aload 0
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.close:()V
9: goto 15
StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream java.util.List java.lang.Throwable
StackMap stack: java.io.IOException
10: pop
11: aload 0
aload 2
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onError:(Ljava/lang/Throwable;)V
goto 16
12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
13: aload 0
aload 2
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onError:(Ljava/lang/Throwable;)V
14: aload 3
athrow
15: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onError:(Ljava/lang/Throwable;)V
end local 2 16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
0 17 1 t Ljava/util/List<Ljava/nio/ByteBuffer;>;
7 16 2 ex Ljava/lang/Throwable;
Exception table:
from to target type
1 5 6 Class java.lang.Throwable
8 9 10 Class java.io.IOException
8 11 12 any
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;)V
MethodParameters:
Name Flags
t
public void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscription:Ljava/util/concurrent/Flow$Subscription;
1: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.failed:Ljava/lang/Throwable;
2: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_LIST:Ljava/util/List;
invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
0 4 1 thrwbl Ljava/lang/Throwable;
MethodParameters:
Name Flags
thrwbl
public void onComplete();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscription:Ljava/util/concurrent/Flow$Subscription;
1: aload 0
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_LIST:Ljava/util/List;
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onNext:(Ljava/util/List;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.closed:Z
ifeq 3
aload 2
monitorexit
2: return
3: StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream top jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream
StackMap stack:
aload 0
iconst_1
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.closed:Z
4: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscription:Ljava/util/concurrent/Flow$Subscription;
astore 1
start local 1 5: aload 0
aconst_null
putfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.subscription:Ljava/util/concurrent/Flow$Subscription;
6: aload 2
monitorexit
7: goto 10
end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
start local 1 10: StackMap locals: jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream java.util.concurrent.Flow$Subscription
StackMap stack:
aload 1
ifnull 17
11: aload 1
invokeinterface java.util.concurrent.Flow$Subscription.cancel:()V
12: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
14: aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_LIST:Ljava/util/List;
invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
pop
15: aload 0
invokespecial java.io.InputStream.close:()V
16: aload 2
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
getstatic jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.LAST_LIST:Ljava/util/List;
invokeinterface java.util.concurrent.BlockingQueue.offer:(Ljava/lang/Object;)Z
pop
18: aload 0
invokespecial java.io.InputStream.close:()V
19: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/incubator/http/ResponseSubscribers$HttpResponseInputStream;
5 8 1 s Ljava/util/concurrent/Flow$Subscription;
10 20 1 s Ljava/util/concurrent/Flow$Subscription;
Exception table:
from to target type
1 2 8 any
3 7 8 any
8 9 8 any
10 13 13 any
Exceptions:
throws java.io.IOException
public void onNext(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.util.List
invokevirtual jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.onNext:(Ljava/util/List;)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=4, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "onSubscribe: requesting "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: iconst_1
aload 0
getfield jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream.buffers:Ljava/util/concurrent/BlockingQueue;
invokeinterface java.util.concurrent.BlockingQueue.remainingCapacity:()I
iconst_1
isub
invokestatic java.lang.Math.max:(II)I
invokevirtual java.lang.StringBuilder.append:(I)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/ResponseSubscribers$HttpResponseInputStream;
}
Signature: Ljava/io/InputStream;Ljdk/incubator/http/HttpResponse$BodySubscriber<Ljava/io/InputStream;>;
SourceFile: "ResponseSubscribers.java"
NestHost: jdk.incubator.http.ResponseSubscribers
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
HttpResponseInputStream = jdk.incubator.http.ResponseSubscribers$HttpResponseInputStream of jdk.incubator.http.ResponseSubscribers