class jdk.internal.net.http.Stream<T> extends jdk.internal.net.http.ExchangeImpl<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.net.http.Stream
super_class: jdk.internal.net.http.ExchangeImpl
{
final jdk.internal.net.http.common.Logger debug;
descriptor: Ljdk/internal/net/http/common/Logger;
flags: (0x0010) ACC_FINAL
final java.util.concurrent.ConcurrentLinkedQueue<jdk.internal.net.http.frame.Http2Frame> inputQ;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Ljdk/internal/net/http/frame/Http2Frame;>;
final jdk.internal.net.http.common.SequentialScheduler sched;
descriptor: Ljdk/internal/net/http/common/SequentialScheduler;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.common.SubscriptionBase userSubscription;
descriptor: Ljdk/internal/net/http/common/SubscriptionBase;
flags: (0x0010) ACC_FINAL
protected volatile int streamid;
descriptor: I
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
long requestContentLen;
descriptor: J
flags: (0x0000)
final jdk.internal.net.http.Http2Connection connection;
descriptor: Ljdk/internal/net/http/Http2Connection;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.HttpRequestImpl request;
descriptor: Ljdk/internal/net/http/HttpRequestImpl;
flags: (0x0010) ACC_FINAL
final jdk.internal.net.http.Stream<T>.HeadersConsumer ;
descriptor: Ljdk/internal/net/http/Stream$HeadersConsumer;
flags: (0x0010) ACC_FINAL
Signature: Ljdk/internal/net/http/Stream<TT;>.HeadersConsumer;
final jdk.internal.net.http.common.HttpHeadersBuilder ;
descriptor: Ljdk/internal/net/http/common/HttpHeadersBuilder;
flags: (0x0010) ACC_FINAL
final java.net.http.HttpHeaders ;
descriptor: Ljava/net/http/HttpHeaders;
flags: (0x0010) ACC_FINAL
volatile java.net.http.HttpResponse$BodySubscriber<T> responseSubscriber;
descriptor: Ljava/net/http/HttpResponse$BodySubscriber;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
final java.net.http.HttpRequest$BodyPublisher requestPublisher;
descriptor: Ljava/net/http/HttpRequest$BodyPublisher;
flags: (0x0010) ACC_FINAL
volatile jdk.internal.net.http.Stream<T>.RequestSubscriber requestSubscriber;
descriptor: Ljdk/internal/net/http/Stream$RequestSubscriber;
flags: (0x0040) ACC_VOLATILE
Signature: Ljdk/internal/net/http/Stream<TT;>.RequestSubscriber;
volatile int responseCode;
descriptor: I
flags: (0x0040) ACC_VOLATILE
volatile jdk.internal.net.http.Response response;
descriptor: Ljdk/internal/net/http/Response;
flags: (0x0040) ACC_VOLATILE
private final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> errorRef;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
final java.util.concurrent.CompletableFuture<java.lang.Void> requestBodyCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
volatile java.util.concurrent.CompletableFuture<T> responseBodyCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/util/concurrent/CompletableFuture<TT;>;
volatile java.net.http.HttpResponse$BodySubscriber<T> pendingResponseSubscriber;
descriptor: Ljava/net/http/HttpResponse$BodySubscriber;
flags: (0x0040) ACC_VOLATILE
Signature: Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
volatile boolean stopRequested;
descriptor: Z
flags: (0x0040) ACC_VOLATILE
private volatile boolean remotelyClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean closed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean endStreamSent;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final java.util.concurrent.atomic.AtomicBoolean deRegistered;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0010) ACC_FINAL
private boolean requestSent;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean responseReceived;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final jdk.internal.net.http.WindowController windowController;
descriptor: Ljdk/internal/net/http/WindowController;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.net.http.WindowUpdateSender windowUpdater;
descriptor: Ljdk/internal/net/http/WindowUpdateSender;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final java.nio.ByteBuffer COMPLETED;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0018) ACC_STATIC, ACC_FINAL
final java.util.List<java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response>> response_cfs;
descriptor: Ljava/util/List;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/List<Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;>;
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/internal/net/http/Stream;
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.internal.net.http.Stream.$assertionsDisabled:Z
3: iconst_0
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putstatic jdk.internal.net.http.Stream.COMPLETED:Ljava/nio/ByteBuffer;
return
LocalVariableTable:
Start End Slot Name Signature
jdk.internal.net.http.HttpConnection connection();
descriptor: ()Ljdk/internal/net/http/HttpConnection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
getfield jdk.internal.net.http.Http2Connection.connection:Ljdk/internal/net/http/HttpConnection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
private void schedule();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
astore 2
start local 2 2: aload 2
ifnonnull 55
3: aload 0
aload 0
getfield jdk.internal.net.http.Stream.pendingResponseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
dup_x1
putfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
astore 2
4: aload 2
ifnonnull 7
5: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 6
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
6: StackMap locals: int java.net.http.HttpResponse$BodySubscriber
StackMap stack:
return
7: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 8
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "subscribing user subscriber"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield jdk.internal.net.http.Stream.userSubscription:Ljdk/internal/net/http/common/SubscriptionBase;
invokeinterface java.net.http.HttpResponse$BodySubscriber.onSubscribe:(Ljava/util/concurrent/Flow$Subscription;)V
9: goto 55
10: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.peek:()Ljava/lang/Object;
checkcast jdk.internal.net.http.frame.Http2Frame
astore 3
start local 3 11: aload 3
instanceof jdk.internal.net.http.frame.ResetFrame
ifeq 16
12: aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.remove:()Ljava/lang/Object;
pop
13: aload 0
aload 3
checkcast jdk.internal.net.http.frame.ResetFrame
aload 2
invokevirtual jdk.internal.net.http.Stream.handleReset:(Ljdk/internal/net/http/frame/ResetFrame;Ljava/util/concurrent/Flow$Subscriber;)V
14: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 15
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
15: StackMap locals: jdk.internal.net.http.frame.Http2Frame
StackMap stack:
return
16: StackMap locals:
StackMap stack:
aload 3
checkcast jdk.internal.net.http.frame.DataFrame
astore 4
start local 4 17: aload 4
iconst_1
invokevirtual jdk.internal.net.http.frame.DataFrame.getFlag:(I)Z
istore 5
start local 5 18: aload 4
invokevirtual jdk.internal.net.http.frame.DataFrame.getData:()Ljava/util/List;
astore 6
start local 6 19: aload 6
invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
astore 7
start local 7 20: aload 7
ldc 2147483647
invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;I)I
istore 8
start local 8 21: iload 8
ifne 33
iload 5
ifeq 33
22: aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.remove:()Ljava/lang/Object;
pop
23: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 4
invokevirtual jdk.internal.net.http.Http2Connection.ensureWindowUpdated:(Ljdk/internal/net/http/frame/DataFrame;)V
24: ldc "responseSubscriber.onComplete"
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
25: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 26
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "incoming: onComplete"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
26: StackMap locals: jdk.internal.net.http.Stream int java.net.http.HttpResponse$BodySubscriber jdk.internal.net.http.frame.Http2Frame jdk.internal.net.http.frame.DataFrame int java.util.List java.util.List int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.stop:()V
27: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.decrementStreamsCount:(I)V
28: aload 2
invokeinterface java.net.http.HttpResponse$BodySubscriber.onComplete:()V
29: iconst_1
istore 1
30: aload 0
invokevirtual jdk.internal.net.http.Stream.setEndStreamReceived:()V
31: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 32
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
32: StackMap locals:
StackMap stack:
return
33: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.userSubscription:Ljdk/internal/net/http/common/SubscriptionBase;
invokevirtual jdk.internal.net.http.common.SubscriptionBase.tryDecrement:()Z
ifeq 52
34: aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.remove:()Ljava/lang/Object;
pop
35: ldc "responseSubscriber.onNext {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
36: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 37
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "incoming: onNext(%d)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
37: StackMap locals:
StackMap stack:
aload 2
aload 7
invokeinterface java.net.http.HttpResponse$BodySubscriber.onNext:(Ljava/lang/Object;)V
38: goto 42
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 9
start local 9 40: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 4
invokevirtual jdk.internal.net.http.Http2Connection.dropDataFrame:(Ljdk/internal/net/http/frame/DataFrame;)V
41: aload 9
athrow
end local 9 42: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual jdk.internal.net.http.Stream.consumed:(Ljdk/internal/net/http/frame/DataFrame;)Z
ifeq 55
43: ldc "responseSubscriber.onComplete"
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
44: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 45
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "incoming: onComplete"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
45: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.stop:()V
46: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.decrementStreamsCount:(I)V
47: aload 2
invokeinterface java.net.http.HttpResponse$BodySubscriber.onComplete:()V
48: iconst_1
istore 1
49: aload 0
invokevirtual jdk.internal.net.http.Stream.setEndStreamReceived:()V
50: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 51
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
51: StackMap locals:
StackMap stack:
return
52: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.stopRequested:Z
ifeq 53
goto 63
53: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 54
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
54: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 55: StackMap locals: jdk.internal.net.http.Stream int java.net.http.HttpResponse$BodySubscriber
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.isEmpty:()Z
ifeq 10
56: goto 63
StackMap locals:
StackMap stack: java.lang.Throwable
57: astore 3
start local 3 58: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 3 59: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 64
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
goto 64
60: StackMap locals:
StackMap stack: java.lang.Throwable
astore 10
61: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 62
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
62: StackMap locals: jdk.internal.net.http.Stream int java.net.http.HttpResponse$BodySubscriber top top top top top top top java.lang.Throwable
StackMap stack:
aload 10
athrow
63: StackMap locals: jdk.internal.net.http.Stream int java.net.http.HttpResponse$BodySubscriber
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifeq 64
aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
64: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
astore 3
start local 3 65: aload 3
ifnull 85
66: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.stop:()V
67: iload 1
ifne 72
68: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 70
69: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "calling subscriber.onError: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
70: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
aload 3
invokeinterface java.net.http.HttpResponse$BodySubscriber.onError:(Ljava/lang/Throwable;)V
71: goto 83
72: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 83
73: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "already completed: dropping error %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
74: goto 83
StackMap locals:
StackMap stack: java.lang.Throwable
75: pop
76: ldc "Subscriber::onError threw exception: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic jdk.internal.net.http.common.Log.logError:(Ljava/lang/String;[Ljava/lang/Object;)V
77: aload 0
aload 3
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
78: aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
goto 85
79: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
80: aload 0
aload 3
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
81: aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
82: aload 4
athrow
83: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
84: aload 0
invokevirtual jdk.internal.net.http.Stream.drainInputQueue:()V
85: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Ljdk/internal/net/http/Stream<TT;>;
1 86 1 onCompleteCalled Z
2 86 2 subscriber Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
11 55 3 frame Ljdk/internal/net/http/frame/Http2Frame;
17 55 4 df Ljdk/internal/net/http/frame/DataFrame;
18 55 5 finished Z
19 55 6 buffers Ljava/util/List<Ljava/nio/ByteBuffer;>;
20 55 7 dsts Ljava/util/List<Ljava/nio/ByteBuffer;>;
21 55 8 size I
40 42 9 t Ljava/lang/Throwable;
58 59 3 throwable Ljava/lang/Throwable;
65 86 3 t Ljava/lang/Throwable;
Exception table:
from to target type
37 38 39 Class java.lang.Throwable
2 5 57 Class java.lang.Throwable
7 14 57 Class java.lang.Throwable
16 31 57 Class java.lang.Throwable
33 50 57 Class java.lang.Throwable
52 53 57 Class java.lang.Throwable
55 56 57 Class java.lang.Throwable
2 5 60 any
7 14 60 any
16 31 60 any
33 50 60 any
52 53 60 any
55 59 60 any
67 74 75 Class java.lang.Throwable
67 77 79 any
private void drainInputQueue();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: goto 3
start local 1 1: StackMap locals: jdk.internal.net.http.frame.Http2Frame
StackMap stack:
aload 1
instanceof jdk.internal.net.http.frame.DataFrame
ifeq 3
2: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 1
checkcast jdk.internal.net.http.frame.DataFrame
invokevirtual jdk.internal.net.http.Http2Connection.dropDataFrame:(Ljdk/internal/net/http/frame/DataFrame;)V
end local 1 3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.poll:()Ljava/lang/Object;
checkcast jdk.internal.net.http.frame.Http2Frame
dup
astore 1
start local 1 4: ifnonnull 1
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Stream<TT;>;
1 3 1 frame Ljdk/internal/net/http/frame/Http2Frame;
4 6 1 frame Ljdk/internal/net/http/frame/Http2Frame;
private boolean consumed(jdk.internal.net.http.frame.DataFrame);
descriptor: (Ljdk/internal/net/http/frame/DataFrame;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.internal.net.http.frame.DataFrame.payloadLength:()I
istore 2
start local 2 1: aload 1
iconst_1
invokevirtual jdk.internal.net.http.frame.DataFrame.getFlag:(I)Z
istore 3
start local 3 2: iload 2
ifne 3
iload 3
ireturn
3: StackMap locals: int int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
getfield jdk.internal.net.http.Http2Connection.windowUpdater:Ljdk/internal/net/http/Http2Connection$ConnectionWindowUpdateSender;
iload 2
invokevirtual jdk.internal.net.http.Http2Connection$ConnectionWindowUpdateSender.update:(I)V
4: iload 3
ifne 6
5: aload 0
getfield jdk.internal.net.http.Stream.windowUpdater:Ljdk/internal/net/http/WindowUpdateSender;
iload 2
invokevirtual jdk.internal.net.http.WindowUpdateSender.update:(I)V
6: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/Stream<TT;>;
0 7 1 df Ljdk/internal/net/http/frame/DataFrame;
1 7 2 len I
2 7 3 endStream Z
MethodParameters:
Name Flags
df
boolean deRegister();
descriptor: ()Z
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.deRegistered:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
java.util.concurrent.CompletableFuture<T> readBodyAsync(java.net.http.HttpResponse$BodyHandler<T>, boolean, java.util.concurrent.Executor);
descriptor: (Ljava/net/http/HttpResponse$BodyHandler;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "Reading body on stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
1: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
new java.lang.StringBuilder
dup
ldc "Getting BodySubscriber for: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Stream.response:Ljdk/internal/net/http/Response;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
2: aload 1
new jdk.internal.net.http.ResponseInfoImpl
dup
aload 0
getfield jdk.internal.net.http.Stream.response:Ljdk/internal/net/http/Response;
invokespecial jdk.internal.net.http.ResponseInfoImpl.<init>:(Ljdk/internal/net/http/Response;)V
invokeinterface java.net.http.HttpResponse$BodyHandler.apply:(Ljava/net/http/HttpResponse$ResponseInfo;)Ljava/net/http/HttpResponse$BodySubscriber;
astore 4
start local 4 3: aload 0
aload 4
aload 3
invokevirtual jdk.internal.net.http.Stream.receiveData:(Ljava/net/http/HttpResponse$BodySubscriber;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
astore 5
start local 5 4: aload 0
getfield jdk.internal.net.http.Stream.exchange:Ljdk/internal/net/http/Exchange;
invokevirtual jdk.internal.net.http.Exchange.getPushGroup:()Ljdk/internal/net/http/PushGroup;
astore 6
start local 6 5: aload 6
ifnull 7
6: aload 5
aload 6
invokedynamic accept(Ljdk/internal/net/http/PushGroup;)Ljava/util/function/BiConsumer;
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;Ljava/lang/Object;)V
jdk/internal/net/http/Stream.lambda$4(Ljdk/internal/net/http/PushGroup;Ljava/lang/Object;Ljava/lang/Throwable;)V (6)
(Ljava/lang/Object;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
astore 5
7: StackMap locals: java.net.http.HttpResponse$BodySubscriber java.util.concurrent.CompletableFuture jdk.internal.net.http.PushGroup
StackMap stack:
aload 5
8: areturn
end local 6 end local 5 end local 4 9: StackMap locals: jdk.internal.net.http.Stream java.net.http.HttpResponse$BodyHandler int java.util.concurrent.Executor
StackMap stack: java.lang.Throwable
astore 4
start local 4 10: aload 0
aload 4
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
11: aload 4
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/Stream<TT;>;
0 12 1 handler Ljava/net/http/HttpResponse$BodyHandler<TT;>;
0 12 2 returnConnectionToPool Z
0 12 3 executor Ljava/util/concurrent/Executor;
3 9 4 bodySubscriber Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
4 9 5 cf Ljava/util/concurrent/CompletableFuture<TT;>;
5 9 6 pg Ljdk/internal/net/http/PushGroup<*>;
10 12 4 t Ljava/lang/Throwable;
Exception table:
from to target type
0 8 9 Class java.lang.Throwable
Signature: (Ljava/net/http/HttpResponse$BodyHandler<TT;>;ZLjava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<TT;>;
MethodParameters:
Name Flags
handler
returnConnectionToPool
executor
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "streamid: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
3: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Stream<TT;>;
1 4 1 sb Ljava/lang/StringBuilder;
private void receiveDataFrame(jdk.internal.net.http.frame.DataFrame);
descriptor: (Ljdk/internal/net/http/frame/DataFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Stream<TT;>;
0 3 1 df Ljdk/internal/net/http/frame/DataFrame;
MethodParameters:
Name Flags
df
private void receiveResetFrame(jdk.internal.net.http.frame.ResetFrame);
descriptor: (Ljdk/internal/net/http/frame/ResetFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Stream<TT;>;
0 3 1 frame Ljdk/internal/net/http/frame/ResetFrame;
MethodParameters:
Name Flags
frame
java.util.concurrent.CompletableFuture<T> receiveData(java.net.http.HttpResponse$BodySubscriber<T>, java.util.concurrent.Executor);
descriptor: (Ljava/net/http/HttpResponse$BodySubscriber;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
aload 1
1: new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
aload 0
invokedynamic accept(Ljdk/internal/net/http/Stream;)Ljava/util/function/Consumer;
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;)V
jdk/internal/net/http/Stream.cancelImpl(Ljava/lang/Throwable;)V (5)
(Ljava/lang/Throwable;)V
2: invokestatic jdk.internal.net.http.ResponseSubscribers.getBodyAsync:(Ljava/util/concurrent/Executor;Ljava/net/http/HttpResponse$BodySubscriber;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;)Ljava/util/concurrent/CompletableFuture;
putfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
3: aload 0
invokevirtual jdk.internal.net.http.Stream.isCanceled:()Z
ifeq 7
4: aload 0
invokevirtual jdk.internal.net.http.Stream.getCancelCause:()Ljava/lang/Throwable;
astore 4
start local 4 5: aload 0
getfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 4
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 4 6: goto 9
7: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield jdk.internal.net.http.Stream.pendingResponseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
8: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
9: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/net/http/Stream<TT;>;
0 10 1 bodySubscriber Ljava/net/http/HttpResponse$BodySubscriber<TT;>;
0 10 2 executor Ljava/util/concurrent/Executor;
5 6 4 t Ljava/lang/Throwable;
Signature: (Ljava/net/http/HttpResponse$BodySubscriber<TT;>;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<TT;>;
MethodParameters:
Name Flags
bodySubscriber
executor
java.util.concurrent.CompletableFuture<jdk.internal.net.http.ExchangeImpl<T>> sendBodyAsync();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.net.http.Stream.sendBodyImpl:()Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic apply(Ljdk/internal/net/http/Stream;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
jdk/internal/net/http/Stream.lambda$6(Ljava/lang/Void;)Ljdk/internal/net/http/ExchangeImpl; (7)
(Ljava/lang/Void;)Ljdk/internal/net/http/ExchangeImpl;
invokevirtual java.util.concurrent.CompletableFuture.thenApply:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
void <init>(jdk.internal.net.http.Http2Connection, jdk.internal.net.http.Exchange<T>, jdk.internal.net.http.WindowController);
descriptor: (Ljdk/internal/net/http/Http2Connection;Ljdk/internal/net/http/Exchange;Ljdk/internal/net/http/WindowController;)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokespecial jdk.internal.net.http.ExchangeImpl.<init>:(Ljdk/internal/net/http/Exchange;)V
1: aload 0
aload 0
invokedynamic get(Ljdk/internal/net/http/Stream;)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/internal/net/http/Stream.dbgString()Ljava/lang/String; (5)
()Ljava/lang/String;
getstatic jdk.internal.net.http.common.Utils.DEBUG:Z
invokestatic jdk.internal.net.http.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljdk/internal/net/http/common/Logger;
putfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
2: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
3: aload 0
4: aload 0
invokedynamic run(Ljdk/internal/net/http/Stream;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Stream.schedule()V (7)
()V
invokestatic jdk.internal.net.http.common.SequentialScheduler.synchronizedScheduler:(Ljava/lang/Runnable;)Ljdk/internal/net/http/common/SequentialScheduler;
putfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
5: aload 0
6: new jdk.internal.net.http.common.SubscriptionBase
dup
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
aload 0
invokedynamic run(Ljdk/internal/net/http/Stream;)Ljava/lang/Runnable;
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:
()V
jdk/internal/net/http/Stream.cancel()V (5)
()V
aload 0
invokedynamic accept(Ljdk/internal/net/http/Stream;)Ljava/util/function/Consumer;
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;)V
jdk/internal/net/http/Stream.onSubscriptionError(Ljava/lang/Throwable;)V (5)
(Ljava/lang/Throwable;)V
invokespecial jdk.internal.net.http.common.SubscriptionBase.<init>:(Ljdk/internal/net/http/common/SequentialScheduler;Ljava/lang/Runnable;Ljava/util/function/Consumer;)V
putfield jdk.internal.net.http.Stream.userSubscription:Ljdk/internal/net/http/common/SubscriptionBase;
7: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
8: aload 0
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
putfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
9: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
putfield jdk.internal.net.http.Stream.deRegistered:Ljava/util/concurrent/atomic/AtomicBoolean;
10: aload 0
new java.util.ArrayList
dup
iconst_5
invokespecial java.util.ArrayList.<init>:(I)V
putfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
11: aload 0
aload 1
putfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
12: aload 0
aload 3
putfield jdk.internal.net.http.Stream.windowController:Ljdk/internal/net/http/WindowController;
13: aload 0
aload 2
invokevirtual jdk.internal.net.http.Exchange.request:()Ljdk/internal/net/http/HttpRequestImpl;
putfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
14: aload 0
aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
getfield jdk.internal.net.http.HttpRequestImpl.requestPublisher:Ljava/net/http/HttpRequest$BodyPublisher;
putfield jdk.internal.net.http.Stream.requestPublisher:Ljava/net/http/HttpRequest$BodyPublisher;
15: aload 0
new jdk.internal.net.http.common.HttpHeadersBuilder
dup
invokespecial jdk.internal.net.http.common.HttpHeadersBuilder.<init>:()V
putfield jdk.internal.net.http.Stream.responseHeadersBuilder:Ljdk/internal/net/http/common/HttpHeadersBuilder;
16: aload 0
new jdk.internal.net.http.Stream$HeadersConsumer
dup
aload 0
invokespecial jdk.internal.net.http.Stream$HeadersConsumer.<init>:(Ljdk/internal/net/http/Stream;)V
putfield jdk.internal.net.http.Stream.rspHeadersConsumer:Ljdk/internal/net/http/Stream$HeadersConsumer;
17: aload 0
aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
invokestatic jdk.internal.net.http.Stream.createPseudoHeaders:(Ljava/net/http/HttpRequest;)Ljava/net/http/HttpHeaders;
putfield jdk.internal.net.http.Stream.requestPseudoHeaders:Ljava/net/http/HttpHeaders;
18: aload 0
new jdk.internal.net.http.Stream$StreamWindowUpdateSender
dup
aload 0
aload 1
invokespecial jdk.internal.net.http.Stream$StreamWindowUpdateSender.<init>:(Ljdk/internal/net/http/Stream;Ljdk/internal/net/http/Http2Connection;)V
putfield jdk.internal.net.http.Stream.windowUpdater:Ljdk/internal/net/http/WindowUpdateSender;
19: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/net/http/Stream<TT;>;
0 20 1 connection Ljdk/internal/net/http/Http2Connection;
0 20 2 e Ljdk/internal/net/http/Exchange<TT;>;
0 20 3 windowController Ljdk/internal/net/http/WindowController;
Signature: (Ljdk/internal/net/http/Http2Connection;Ljdk/internal/net/http/Exchange<TT;>;Ljdk/internal/net/http/WindowController;)V
MethodParameters:
Name Flags
connection
e
windowController
void incoming(jdk.internal.net.http.frame.Http2Frame);
descriptor: (Ljdk/internal/net/http/frame/Http2Frame;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 1
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "incoming: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
1: StackMap locals:
StackMap stack:
aload 1
instanceof jdk.internal.net.http.frame.HeaderFrame
ifeq 9
2: aload 1
checkcast jdk.internal.net.http.frame.HeaderFrame
astore 2
start local 2 3: aload 2
invokevirtual jdk.internal.net.http.frame.HeaderFrame.endHeaders:()Z
ifeq 13
4: ldc "handling response (streamid={0})"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 0
invokevirtual jdk.internal.net.http.Stream.handleResponse:()V
6: aload 2
iconst_1
invokevirtual jdk.internal.net.http.frame.HeaderFrame.getFlag:(I)Z
ifeq 13
7: aload 0
new jdk.internal.net.http.frame.DataFrame
dup
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
iconst_1
invokestatic java.util.List.of:()Ljava/util/List;
invokespecial jdk.internal.net.http.frame.DataFrame.<init>:(IILjava/util/List;)V
invokevirtual jdk.internal.net.http.Stream.receiveDataFrame:(Ljdk/internal/net/http/frame/DataFrame;)V
end local 2 8: goto 13
StackMap locals:
StackMap stack:
9: aload 1
instanceof jdk.internal.net.http.frame.DataFrame
ifeq 12
10: aload 0
aload 1
checkcast jdk.internal.net.http.frame.DataFrame
invokevirtual jdk.internal.net.http.Stream.receiveDataFrame:(Ljdk/internal/net/http/frame/DataFrame;)V
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.otherFrame:(Ljdk/internal/net/http/frame/Http2Frame;)V
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/net/http/Stream<TT;>;
0 14 1 frame Ljdk/internal/net/http/frame/Http2Frame;
3 8 2 hframe Ljdk/internal/net/http/frame/HeaderFrame;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
frame
void otherFrame(jdk.internal.net.http.frame.Http2Frame);
descriptor: (Ljdk/internal/net/http/frame/Http2Frame;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.internal.net.http.frame.Http2Frame.type:()I
tableswitch { // 2 - 8
2: 5
3: 3
4: 7
5: 7
6: 7
7: 7
8: 1
default: 7
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast jdk.internal.net.http.frame.WindowUpdateFrame
invokevirtual jdk.internal.net.http.Stream.incoming_windowUpdate:(Ljdk/internal/net/http/frame/WindowUpdateFrame;)V
2: goto 9
3: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast jdk.internal.net.http.frame.ResetFrame
invokevirtual jdk.internal.net.http.Stream.incoming_reset:(Ljdk/internal/net/http/frame/ResetFrame;)V
4: goto 9
5: StackMap locals:
StackMap stack:
aload 0
aload 1
checkcast jdk.internal.net.http.frame.PriorityFrame
invokevirtual jdk.internal.net.http.Stream.incoming_priority:(Ljdk/internal/net/http/frame/PriorityFrame;)V
6: goto 9
7: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unexpected frame: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual jdk.internal.net.http.frame.Http2Frame.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 8: new java.io.IOException
dup
aload 2
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/net/http/Stream<TT;>;
0 10 1 frame Ljdk/internal/net/http/frame/Http2Frame;
8 9 2 msg Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
frame
jdk.internal.net.http.hpack.DecodingCallback ();
descriptor: ()Ljdk/internal/net/http/hpack/DecodingCallback;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.rspHeadersConsumer:Ljdk/internal/net/http/Stream$HeadersConsumer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
protected void handleResponse();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.responseHeadersBuilder:Ljdk/internal/net/http/common/HttpHeadersBuilder;
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.build:()Ljava/net/http/HttpHeaders;
astore 1
start local 1 1: aload 0
aload 1
2: ldc ":status"
invokevirtual java.net.http.HttpHeaders.firstValueAsLong:(Ljava/lang/String;)Ljava/util/OptionalLong;
3: 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/internal/net/http/Stream.lambda$7()Ljava/io/IOException; (6)
()Ljava/io/IOException;
invokevirtual java.util.OptionalLong.orElseThrow:(Ljava/util/function/Supplier;)J
l2i
4: putfield jdk.internal.net.http.Stream.responseCode:I
5: aload 0
new jdk.internal.net.http.Response
dup
6: aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
aload 0
getfield jdk.internal.net.http.Stream.exchange:Ljdk/internal/net/http/Exchange;
aload 1
aload 0
invokevirtual jdk.internal.net.http.Stream.connection:()Ljdk/internal/net/http/HttpConnection;
7: aload 0
getfield jdk.internal.net.http.Stream.responseCode:I
getstatic java.net.http.HttpClient$Version.HTTP_2:Ljava/net/http/HttpClient$Version;
invokespecial jdk.internal.net.http.Response.<init>:(Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/Exchange;Ljava/net/http/HttpHeaders;Ljdk/internal/net/http/HttpConnection;ILjava/net/http/HttpClient$Version;)V
8: putfield jdk.internal.net.http.Stream.response:Ljdk/internal/net/http/Response;
9: aload 1
ldc "content-length"
invokevirtual java.net.http.HttpHeaders.firstValueAsLong:(Ljava/lang/String;)Ljava/util/OptionalLong;
pop
10: invokestatic jdk.internal.net.http.common.Log.headers:()Z
ifeq 14
11: new java.lang.StringBuilder
dup
ldc "RESPONSE HEADERS:\n"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 12: aload 2
ldc " "
aload 1
invokestatic jdk.internal.net.http.common.Log.dumpHeaders:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/net/http/HttpHeaders;)V
13: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logHeaders:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 2 14: StackMap locals: java.net.http.HttpHeaders
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.rspHeadersConsumer:Ljdk/internal/net/http/Stream$HeadersConsumer;
invokevirtual jdk.internal.net.http.Stream$HeadersConsumer.reset:()V
15: aload 0
aload 0
getfield jdk.internal.net.http.Stream.response:Ljdk/internal/net/http/Response;
invokevirtual jdk.internal.net.http.Stream.completeResponse:(Ljdk/internal/net/http/Response;)V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/Stream<TT;>;
1 17 1 responseHeaders Ljava/net/http/HttpHeaders;
12 14 2 sb Ljava/lang/StringBuilder;
Exceptions:
throws java.io.IOException
void incoming_reset(jdk.internal.net.http.frame.ResetFrame);
descriptor: (Ljdk/internal/net/http/frame/ResetFrame;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: ldc "Received RST_STREAM on stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
1: aload 0
invokevirtual jdk.internal.net.http.Stream.endStreamReceived:()Z
ifeq 4
2: ldc "Ignoring RST_STREAM frame received on remotely closed stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
3: goto 15
StackMap locals:
StackMap stack:
4: aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifeq 7
5: ldc "Ignoring RST_STREAM frame received on closed stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
6: goto 15
7: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
ifnonnull 8
aload 0
getfield jdk.internal.net.http.Stream.pendingResponseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
goto 9
StackMap locals:
StackMap stack:
8: aload 0
getfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
9: StackMap locals:
StackMap stack: java.net.http.HttpResponse$BodySubscriber
astore 2
start local 2 10: aload 0
getfield jdk.internal.net.http.Stream.response:Ljdk/internal/net/http/Response;
ifnonnull 13
aload 2
ifnonnull 13
11: aload 0
aload 1
aload 2
invokevirtual jdk.internal.net.http.Stream.handleReset:(Ljdk/internal/net/http/frame/ResetFrame;Ljava/util/concurrent/Flow$Subscriber;)V
12: goto 15
13: StackMap locals: java.util.concurrent.Flow$Subscriber
StackMap stack:
aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.receiveResetFrame:(Ljdk/internal/net/http/frame/ResetFrame;)V
14: ldc "RST_STREAM pushed in queue for stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 2 15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/internal/net/http/Stream<TT;>;
0 16 1 frame Ljdk/internal/net/http/frame/ResetFrame;
10 15 2 subscriber Ljava/util/concurrent/Flow$Subscriber<*>;
MethodParameters:
Name Flags
frame
void handleReset(jdk.internal.net.http.frame.ResetFrame, java.util.concurrent.Flow$Subscriber<?>);
descriptor: (Ljdk/internal/net/http/frame/ResetFrame;Ljava/util/concurrent/Flow$Subscriber;)V
flags: (0x0000)
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: ldc "Handling RST_STREAM on stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
1: aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifne 32
2: aload 0
dup
astore 3
monitorenter
3: aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifeq 7
4: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 5
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Stream already closed: ignoring RESET"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
5: StackMap locals: jdk.internal.net.http.Stream
StackMap stack:
aload 3
monitorexit
6: return
7: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.Stream.closed:Z
8: aload 3
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual jdk.internal.net.http.frame.ResetFrame.getErrorCode:()I
istore 3
start local 3 13: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Received RST_STREAM: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: iload 3
invokestatic jdk.internal.net.http.frame.ErrorFrame.stringForCode:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 4
start local 4 16: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 19
17: aload 2
ifnull 19
18: aload 2
aload 4
invokeinterface java.util.concurrent.Flow$Subscriber.onError:(Ljava/lang/Throwable;)V
19: StackMap locals: int java.io.IOException
StackMap stack:
aload 0
aload 4
invokevirtual jdk.internal.net.http.Stream.completeResponseExceptionally:(Ljava/lang/Throwable;)V
20: aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 22
21: aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
22: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
ifnull 29
23: aload 0
getfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 4 end local 3 24: goto 29
StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.frame.ResetFrame java.util.concurrent.Flow$Subscriber
StackMap stack: java.lang.Throwable
25: astore 5
26: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.decrementStreamsCount:(I)V
27: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.closeStream:(I)V
28: aload 5
athrow
29: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.decrementStreamsCount:(I)V
30: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.closeStream:(I)V
31: goto 33
32: StackMap locals:
StackMap stack:
ldc "Ignoring RST_STREAM frame received on closed stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
33: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Ljdk/internal/net/http/Stream<TT;>;
0 34 1 frame Ljdk/internal/net/http/frame/ResetFrame;
0 34 2 subscriber Ljava/util/concurrent/Flow$Subscriber<*>;
13 24 3 error I
16 24 4 e Ljava/io/IOException;
Exception table:
from to target type
3 6 10 any
7 9 10 any
10 11 10 any
12 25 25 any
Signature: (Ljdk/internal/net/http/frame/ResetFrame;Ljava/util/concurrent/Flow$Subscriber<*>;)V
MethodParameters:
Name Flags
frame
subscriber
void incoming_priority(jdk.internal.net.http.frame.PriorityFrame);
descriptor: (Ljdk/internal/net/http/frame/PriorityFrame;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
ldc "Not implemented"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
0 1 1 frame Ljdk/internal/net/http/frame/PriorityFrame;
MethodParameters:
Name Flags
frame
private void incoming_windowUpdate(jdk.internal.net.http.frame.WindowUpdateFrame);
descriptor: (Ljdk/internal/net/http/frame/WindowUpdateFrame;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.internal.net.http.frame.WindowUpdateFrame.getUpdate:()I
istore 2
start local 2 1: iload 2
ifgt 7
2: ldc "Resetting stream: {0}, Window Update amount: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
3: aload 0
getfield jdk.internal.net.http.Stream.streamid:I
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
4: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
iconst_3
invokevirtual jdk.internal.net.http.Http2Connection.resetStream:(II)V
6: goto 11
7: StackMap locals: int
StackMap stack:
getstatic jdk.internal.net.http.Stream.$assertionsDisabled:Z
ifne 8
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
ifne 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.windowController:Ljdk/internal/net/http/WindowController;
iload 2
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.WindowController.increaseStreamWindow:(II)Z
istore 3
start local 3 9: iload 3
ifne 11
10: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
iconst_3
invokevirtual jdk.internal.net.http.Http2Connection.resetStream:(II)V
end local 3 11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/Stream<TT;>;
0 12 1 frame Ljdk/internal/net/http/frame/WindowUpdateFrame;
1 12 2 amount I
9 11 3 success Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
frame
void incoming_pushPromise(jdk.internal.net.http.HttpRequestImpl, jdk.internal.net.http.Stream$PushedStream<T>);
descriptor: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/Stream$PushedStream;)V
flags: (0x0000)
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: invokestatic jdk.internal.net.http.common.Log.requests:()Z
ifeq 2
1: new java.lang.StringBuilder
dup
ldc "PUSH_PROMISE: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual jdk.internal.net.http.HttpRequestImpl.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logRequest:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.exchange:Ljdk/internal/net/http/Exchange;
invokevirtual jdk.internal.net.http.Exchange.getPushGroup:()Ljdk/internal/net/http/PushGroup;
astore 3
start local 3 3: aload 3
ifnonnull 8
4: new java.lang.StringBuilder
dup
ldc "Rejecting push promise stream "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 2
getfield jdk.internal.net.http.Stream$PushedStream.streamid:I
bipush 7
invokevirtual jdk.internal.net.http.Http2Connection.resetStream:(II)V
6: aload 2
invokevirtual jdk.internal.net.http.Stream$PushedStream.close:()V
7: return
8: StackMap locals: jdk.internal.net.http.PushGroup
StackMap stack:
aconst_null
astore 4
start local 4 9: iconst_0
istore 5
start local 5 10: aload 3
aload 1
invokevirtual jdk.internal.net.http.PushGroup.acceptPushRequest:(Ljava/net/http/HttpRequest;)Ljdk/internal/net/http/PushGroup$Acceptor;
astore 4
11: aload 4
invokeinterface jdk.internal.net.http.PushGroup$Acceptor.accepted:()Z
istore 5
12: goto 18
StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.HttpRequestImpl jdk.internal.net.http.Stream$PushedStream jdk.internal.net.http.PushGroup jdk.internal.net.http.PushGroup$Acceptor int
StackMap stack: java.lang.Throwable
13: astore 6
start local 6 14: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 18
15: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "PushPromiseHandler::applyPushPromise threw exception %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
16: aload 6
aastore
17: invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 6 18: StackMap locals:
StackMap stack:
iload 5
ifne 26
19: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Stream "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " cancelled by users handler"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 6
start local 6 20: invokestatic jdk.internal.net.http.common.Log.trace:()Z
ifeq 24
21: ldc "No body subscriber for {0}: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
22: aload 6
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
aastore
23: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
24: StackMap locals: java.io.IOException
StackMap stack:
aload 2
aload 6
invokevirtual jdk.internal.net.http.Stream$PushedStream.cancelImpl:(Ljava/lang/Throwable;)V
25: return
end local 6 26: StackMap locals:
StackMap stack:
getstatic jdk.internal.net.http.Stream.$assertionsDisabled:Z
ifne 28
iload 5
ifeq 27
aload 4
ifnonnull 28
StackMap locals:
StackMap stack:
27: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
28: StackMap locals:
StackMap stack:
aload 4
invokeinterface jdk.internal.net.http.PushGroup$Acceptor.cf:()Ljava/util/concurrent/CompletableFuture;
astore 6
start local 6 29: aload 4
invokeinterface jdk.internal.net.http.PushGroup$Acceptor.bodyHandler:()Ljava/net/http/HttpResponse$BodyHandler;
astore 7
start local 7 30: getstatic jdk.internal.net.http.Stream.$assertionsDisabled:Z
ifne 31
aload 7
ifnonnull 31
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
31: StackMap locals: java.util.concurrent.CompletableFuture java.net.http.HttpResponse$BodyHandler
StackMap stack:
aload 2
invokevirtual jdk.internal.net.http.Stream$PushedStream.requestSent:()V
32: aload 2
aload 7
invokevirtual jdk.internal.net.http.Stream$PushedStream.setPushHandler:(Ljava/net/http/HttpResponse$BodyHandler;)V
33: aload 2
invokevirtual jdk.internal.net.http.Stream$PushedStream.responseCF:()Ljava/util/concurrent/CompletableFuture;
astore 8
start local 8 34: aload 8
aload 2
aload 3
aload 6
invokedynamic accept(Ljdk/internal/net/http/Stream$PushedStream;Ljdk/internal/net/http/PushGroup;Ljava/util/concurrent/CompletableFuture;)Ljava/util/function/BiConsumer;
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;Ljava/lang/Object;)V
jdk/internal/net/http/Stream.lambda$8(Ljdk/internal/net/http/Stream$PushedStream;Ljdk/internal/net/http/PushGroup;Ljava/util/concurrent/CompletableFuture;Ljava/net/http/HttpResponse;Ljava/lang/Throwable;)V (6)
(Ljava/net/http/HttpResponse;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
pop
35: return
end local 8 end local 7 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 36 0 this Ljdk/internal/net/http/Stream<TT;>;
0 36 1 pushRequest Ljdk/internal/net/http/HttpRequestImpl;
0 36 2 pushStream Ljdk/internal/net/http/Stream$PushedStream<TT;>;
3 36 3 pushGroup Ljdk/internal/net/http/PushGroup<TT;>;
9 36 4 acceptor Ljdk/internal/net/http/PushGroup$Acceptor<TT;>;
10 36 5 accepted Z
14 18 6 t Ljava/lang/Throwable;
20 26 6 ex Ljava/io/IOException;
29 36 6 pushResponseCF Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;
30 36 7 pushHandler Ljava/net/http/HttpResponse$BodyHandler<TT;>;
34 36 8 cf Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;
Exception table:
from to target type
10 12 13 Class java.lang.Throwable
Exceptions:
throws java.io.IOException
Signature: (Ljdk/internal/net/http/HttpRequestImpl;Ljdk/internal/net/http/Stream$PushedStream<TT;>;)V
MethodParameters:
Name Flags
pushRequest
pushStream
private jdk.internal.net.http.frame.OutgoingHeaders<jdk.internal.net.http.Stream<T>> headerFrame(long);
descriptor: (J)Ljdk/internal/net/http/frame/OutgoingHeaders;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.getSystemHeadersBuilder:()Ljdk/internal/net/http/common/HttpHeadersBuilder;
astore 3
start local 3 1: lload 1
lconst_0
lcmp
ifle 3
2: aload 3
ldc "content-length"
lload 1
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
3: StackMap locals: jdk.internal.net.http.common.HttpHeadersBuilder
StackMap stack:
aload 0
aload 3
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.build:()Ljava/net/http/HttpHeaders;
invokevirtual jdk.internal.net.http.Stream.filterHeaders:(Ljava/net/http/HttpHeaders;)Ljava/net/http/HttpHeaders;
astore 4
start local 4 4: aload 0
aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.getUserHeaders:()Ljava/net/http/HttpHeaders;
invokevirtual jdk.internal.net.http.Stream.filterHeaders:(Ljava/net/http/HttpHeaders;)Ljava/net/http/HttpHeaders;
astore 5
start local 5 5: aload 5
invokevirtual java.net.http.HttpHeaders.map:()Ljava/util/Map;
aload 0
invokevirtual jdk.internal.net.http.Stream.client:()Ljava/net/http/HttpClient;
invokestatic jdk.internal.net.http.common.Utils.CONTEXT_RESTRICTED:(Ljava/net/http/HttpClient;)Ljava/util/function/BiPredicate;
invokestatic java.net.http.HttpHeaders.of:(Ljava/util/Map;Ljava/util/function/BiPredicate;)Ljava/net/http/HttpHeaders;
astore 5
6: aload 5
astore 6
start local 6 7: aload 4
invokevirtual java.net.http.HttpHeaders.map:()Ljava/util/Map;
aload 6
invokedynamic test(Ljava/net/http/HttpHeaders;)Ljava/util/function/BiPredicate;
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;Ljava/lang/Object;)Z
jdk/internal/net/http/Stream.lambda$9(Ljava/net/http/HttpHeaders;Ljava/lang/String;Ljava/lang/String;)Z (6)
(Ljava/lang/String;Ljava/lang/String;)Z
invokestatic java.net.http.HttpHeaders.of:(Ljava/util/Map;Ljava/util/function/BiPredicate;)Ljava/net/http/HttpHeaders;
astore 4
8: new jdk.internal.net.http.frame.OutgoingHeaders
dup
aload 4
aload 5
aload 0
invokespecial jdk.internal.net.http.frame.OutgoingHeaders.<init>:(Ljava/net/http/HttpHeaders;Ljava/net/http/HttpHeaders;Ljava/lang/Object;)V
astore 7
start local 7 9: lload 1
lconst_0
lcmp
ifne 12
10: aload 7
iconst_1
invokevirtual jdk.internal.net.http.frame.OutgoingHeaders.setFlag:(I)V
11: aload 0
iconst_1
putfield jdk.internal.net.http.Stream.endStreamSent:Z
12: StackMap locals: jdk.internal.net.http.Stream long jdk.internal.net.http.common.HttpHeadersBuilder java.net.http.HttpHeaders java.net.http.HttpHeaders java.net.http.HttpHeaders jdk.internal.net.http.frame.OutgoingHeaders
StackMap stack:
aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/internal/net/http/Stream<TT;>;
0 13 1 contentLength J
1 13 3 h Ljdk/internal/net/http/common/HttpHeadersBuilder;
4 13 4 sysh Ljava/net/http/HttpHeaders;
5 13 5 userh Ljava/net/http/HttpHeaders;
7 13 6 uh Ljava/net/http/HttpHeaders;
9 13 7 f Ljdk/internal/net/http/frame/OutgoingHeaders<Ljdk/internal/net/http/Stream<TT;>;>;
Signature: (J)Ljdk/internal/net/http/frame/OutgoingHeaders<Ljdk/internal/net/http/Stream<TT;>;>;
MethodParameters:
Name Flags
contentLength
private boolean (java.net.http.HttpHeaders);
descriptor: (Ljava/net/http/HttpHeaders;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "proxy-authorization"
invokevirtual java.net.http.HttpHeaders.firstValue:(Ljava/lang/String;)Ljava/util/Optional;
1: invokevirtual java.util.Optional.isPresent:()Z
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/Stream<TT;>;
0 3 1 headers Ljava/net/http/HttpHeaders;
MethodParameters:
Name Flags
headers
private boolean needsFiltering(java.net.http.HttpHeaders, java.util.function.BiPredicate<java.lang.String, java.lang.String>);
descriptor: (Ljava/net/http/HttpHeaders;Ljava/util/function/BiPredicate;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic jdk.internal.net.http.common.Utils.PROXY_TUNNEL_FILTER:Ljava/util/function/BiPredicate;
if_acmpeq 1
aload 2
getstatic jdk.internal.net.http.common.Utils.PROXY_FILTER:Ljava/util/function/BiPredicate;
if_acmpne 7
1: StackMap locals:
StackMap stack:
aload 2
getstatic jdk.internal.net.http.common.Utils.PROXY_TUNNEL_FILTER:Ljava/util/function/BiPredicate;
if_acmpne 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: invokestatic jdk.internal.net.http.common.Utils.proxyHasDisabledSchemes:(Z)Z
ifeq 6
4: aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.hasProxyAuthorization:(Ljava/net/http/HttpHeaders;)Z
ifeq 6
5: iconst_1
ireturn
StackMap locals:
StackMap stack:
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.hasProxyAuthorization:(Ljava/net/http/HttpHeaders;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/net/http/Stream<TT;>;
0 8 1 headers Ljava/net/http/HttpHeaders;
0 8 2 filter Ljava/util/function/BiPredicate<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Ljava/net/http/HttpHeaders;Ljava/util/function/BiPredicate<Ljava/lang/String;Ljava/lang/String;>;)Z
MethodParameters:
Name Flags
headers
filter
private java.net.http.HttpHeaders (java.net.http.HttpHeaders);
descriptor: (Ljava/net/http/HttpHeaders;)Ljava/net/http/HttpHeaders;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual jdk.internal.net.http.Stream.connection:()Ljdk/internal/net/http/HttpConnection;
astore 2
start local 2 1: aload 2
aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpConnection.headerFilter:(Ljdk/internal/net/http/HttpRequestImpl;)Ljava/util/function/BiPredicate;
astore 3
start local 3 2: aload 0
aload 1
aload 3
invokevirtual jdk.internal.net.http.Stream.needsFiltering:(Ljava/net/http/HttpHeaders;Ljava/util/function/BiPredicate;)Z
ifeq 4
3: aload 1
invokevirtual java.net.http.HttpHeaders.map:()Ljava/util/Map;
aload 3
invokestatic java.net.http.HttpHeaders.of:(Ljava/util/Map;Ljava/util/function/BiPredicate;)Ljava/net/http/HttpHeaders;
areturn
4: StackMap locals: jdk.internal.net.http.HttpConnection java.util.function.BiPredicate
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/Stream<TT;>;
0 5 1 headers Ljava/net/http/HttpHeaders;
1 5 2 conn Ljdk/internal/net/http/HttpConnection;
2 5 3 filter Ljava/util/function/BiPredicate<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
headers
private static java.net.http.HttpHeaders (java.net.http.HttpRequest);
descriptor: (Ljava/net/http/HttpRequest;)Ljava/net/http/HttpHeaders;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: new jdk.internal.net.http.common.HttpHeadersBuilder
dup
invokespecial jdk.internal.net.http.common.HttpHeadersBuilder.<init>:()V
astore 1
start local 1 1: aload 0
invokevirtual java.net.http.HttpRequest.method:()Ljava/lang/String;
astore 2
start local 2 2: aload 1
ldc ":method"
aload 2
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
3: aload 0
invokevirtual java.net.http.HttpRequest.uri:()Ljava/net/URI;
astore 3
start local 3 4: aload 1
ldc ":scheme"
aload 3
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
5: aload 1
ldc ":authority"
aload 3
invokevirtual java.net.URI.getAuthority:()Ljava/lang/String;
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
6: aload 3
invokevirtual java.net.URI.getRawQuery:()Ljava/lang/String;
astore 4
start local 4 7: aload 3
invokevirtual java.net.URI.getRawPath:()Ljava/lang/String;
astore 5
start local 5 8: aload 5
ifnull 9
aload 5
invokevirtual java.lang.String.isEmpty:()Z
ifeq 13
9: StackMap locals: java.net.http.HttpRequest jdk.internal.net.http.common.HttpHeadersBuilder java.lang.String java.net.URI java.lang.String java.lang.String
StackMap stack:
aload 2
ldc "OPTIONS"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 12
10: ldc "*"
astore 5
11: goto 13
12: StackMap locals:
StackMap stack:
ldc "/"
astore 5
13: StackMap locals:
StackMap stack:
aload 4
ifnull 15
14: new java.lang.StringBuilder
dup
aload 5
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 5
15: StackMap locals:
StackMap stack:
aload 1
ldc ":path"
aload 5
invokestatic jdk.internal.net.http.common.Utils.encode:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)V
16: aload 1
invokevirtual jdk.internal.net.http.common.HttpHeadersBuilder.build:()Ljava/net/http/HttpHeaders;
areturn
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 17 0 request Ljava/net/http/HttpRequest;
1 17 1 hdrs Ljdk/internal/net/http/common/HttpHeadersBuilder;
2 17 2 method Ljava/lang/String;
4 17 3 uri Ljava/net/URI;
7 17 4 query Ljava/lang/String;
8 17 5 path Ljava/lang/String;
MethodParameters:
Name Flags
request
java.net.http.HttpHeaders ();
descriptor: ()Ljava/net/http/HttpHeaders;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.requestPseudoHeaders:Ljava/net/http/HttpHeaders;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
void setEndStreamReceived();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.net.http.Stream.$assertionsDisabled:Z
ifne 1
aload 0
getfield jdk.internal.net.http.Stream.remotelyClosed:Z
ifeq 1
new java.lang.AssertionError
dup
ldc "Unexpected endStream already set"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.Stream.remotelyClosed:Z
2: aload 0
invokevirtual jdk.internal.net.http.Stream.responseReceived:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Stream<TT;>;
private boolean endStreamReceived();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.remotelyClosed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
java.util.concurrent.CompletableFuture<jdk.internal.net.http.ExchangeImpl<T>> sendHeadersAsync();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 1
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "sendHeadersOnly()"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
invokestatic jdk.internal.net.http.common.Log.requests:()Z
ifeq 3
aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
ifnull 3
2: aload 0
getfield jdk.internal.net.http.Stream.request:Ljdk/internal/net/http/HttpRequestImpl;
invokevirtual jdk.internal.net.http.HttpRequestImpl.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logRequest:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.requestPublisher:Ljava/net/http/HttpRequest$BodyPublisher;
ifnull 6
4: aload 0
aload 0
getfield jdk.internal.net.http.Stream.requestPublisher:Ljava/net/http/HttpRequest$BodyPublisher;
invokeinterface java.net.http.HttpRequest$BodyPublisher.contentLength:()J
putfield jdk.internal.net.http.Stream.requestContentLen:J
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield jdk.internal.net.http.Stream.requestContentLen:J
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.net.http.Stream.requestContentLen:J
invokevirtual jdk.internal.net.http.Stream.headerFrame:(J)Ljdk/internal/net/http/frame/OutgoingHeaders;
astore 1
start local 1 8: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 1
invokevirtual jdk.internal.net.http.Http2Connection.sendFrame:(Ljdk/internal/net/http/frame/Http2Frame;)V
9: new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
astore 2
start local 2 10: aload 2
aload 0
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
11: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/Stream<TT;>;
8 12 1 f Ljdk/internal/net/http/frame/OutgoingHeaders<Ljdk/internal/net/http/Stream<TT;>;>;
10 12 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/ExchangeImpl<TT;>;>;
void released();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.streamid:I
ifle 5
1: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 2
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Released stream %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.decrementStreamsCount:(I)V
3: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.closeStream:(I)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 6
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Can't release stream %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/Stream<TT;>;
void completed();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
void registerStream(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield jdk.internal.net.http.Stream.streamid:I
1: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.putStream:(Ljdk/internal/net/http/Stream;I)V
2: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Registered stream %d"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Stream<TT;>;
0 4 1 id I
MethodParameters:
Name Flags
id
void signalWindowUpdate();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.requestSubscriber:Ljdk/internal/net/http/Stream$RequestSubscriber;
astore 1
start local 1 1: getstatic jdk.internal.net.http.Stream.$assertionsDisabled:Z
ifne 2
aload 1
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: jdk.internal.net.http.Stream$RequestSubscriber
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 3
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Signalling window update"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 1
getfield jdk.internal.net.http.Stream$RequestSubscriber.sendScheduler:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/Stream<TT;>;
1 5 1 subscriber Ljdk/internal/net/http/Stream<TT;>.RequestSubscriber;
public java.util.concurrent.CompletableFuture<java.lang.Void> ignoreBody();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
iconst_5
invokevirtual jdk.internal.net.http.Http2Connection.resetStream:(II)V
1: aconst_null
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 4: ldc "Error resetting stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: aload 1
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/net/http/Stream<TT;>;
4 6 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 2 3 Class java.lang.Throwable
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
jdk.internal.net.http.frame.DataFrame getDataFrame(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljdk/internal/net/http/frame/DataFrame;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
invokevirtual jdk.internal.net.http.Http2Connection.getMaxSendFrameSize:()I
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.Stream.windowController:Ljdk/internal/net/http/WindowController;
iload 2
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
aload 0
invokevirtual jdk.internal.net.http.WindowController.tryAcquire:(IILjdk/internal/net/http/Stream;)I
istore 3
start local 3 2: iload 3
ifgt 3
aconst_null
areturn
3: StackMap locals: int int
StackMap stack:
aload 1
iload 3
invokestatic jdk.internal.net.http.common.Utils.sliceWithLimitedCapacity:(Ljava/nio/ByteBuffer;I)Ljava/nio/ByteBuffer;
astore 4
start local 4 4: new jdk.internal.net.http.frame.DataFrame
dup
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
iconst_0
aload 4
invokespecial jdk.internal.net.http.frame.DataFrame.<init>:(IILjava/nio/ByteBuffer;)V
astore 5
start local 5 5: aload 5
areturn
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 6 0 this Ljdk/internal/net/http/Stream<TT;>;
0 6 1 buffer Ljava/nio/ByteBuffer;
1 6 2 requestAmount I
2 6 3 actualAmount I
4 6 4 outBuf Ljava/nio/ByteBuffer;
5 6 5 df Ljdk/internal/net/http/frame/DataFrame;
MethodParameters:
Name Flags
buffer
private jdk.internal.net.http.frame.DataFrame getEmptyEndStreamDataFrame();
descriptor: ()Ljdk/internal/net/http/frame/DataFrame;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: new jdk.internal.net.http.frame.DataFrame
dup
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
iconst_1
invokestatic java.util.List.of:()Ljava/util/List;
invokespecial jdk.internal.net.http.frame.DataFrame.<init>:(IILjava/util/List;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
java.util.concurrent.CompletableFuture<jdk.internal.net.http.Response> getResponseAsync(java.util.concurrent.Executor);
descriptor: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
dup
astore 3
monitorenter
1: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 4
2: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
iconst_0
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 2
start local 2 3: getstatic jdk.internal.net.http.Stream.$assertionsDisabled:Z
ifne 6
aload 2
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 6
new java.lang.AssertionError
dup
ldc "Removing uncompleted response: could cause code to hang!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 4: StackMap locals: jdk.internal.net.http.Stream java.util.concurrent.Executor top java.util.List
StackMap stack:
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
astore 2
start local 2 5: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: StackMap locals: jdk.internal.net.http.Stream java.util.concurrent.Executor java.util.concurrent.CompletableFuture java.util.List
StackMap stack:
aload 3
monitorexit
7: goto 10
end local 2 StackMap locals: jdk.internal.net.http.Stream java.util.concurrent.Executor top java.util.List
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
start local 2 10: StackMap locals: jdk.internal.net.http.Stream java.util.concurrent.Executor java.util.concurrent.CompletableFuture
StackMap stack:
aload 1
ifnull 12
aload 2
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 12
11: aload 2
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
jdk/internal/net/http/Stream.lambda$10(Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/Response; (6)
(Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/Response;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.thenApplyAsync:(Ljava/util/function/Function;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
astore 2
12: StackMap locals:
StackMap stack:
ldc "Response future (stream={0}) is: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
13: aload 0
getfield jdk.internal.net.http.Stream.exchange:Ljdk/internal/net/http/Exchange;
invokevirtual jdk.internal.net.http.Exchange.getPushGroup:()Ljdk/internal/net/http/PushGroup;
astore 3
start local 3 14: aload 3
ifnull 16
15: aload 2
aload 3
invokedynamic accept(Ljdk/internal/net/http/PushGroup;)Ljava/util/function/BiConsumer;
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;Ljava/lang/Object;)V
jdk/internal/net/http/Stream.lambda$11(Ljdk/internal/net/http/PushGroup;Ljdk/internal/net/http/Response;Ljava/lang/Throwable;)V (6)
(Ljdk/internal/net/http/Response;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
astore 2
16: StackMap locals: jdk.internal.net.http.PushGroup
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/Stream<TT;>;
0 17 1 executor Ljava/util/concurrent/Executor;
3 4 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
5 8 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
10 17 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
14 17 3 pg Ljdk/internal/net/http/PushGroup<*>;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
MethodParameters:
Name Flags
executor
void completeResponse(jdk.internal.net.http.Response);
descriptor: (Ljdk/internal/net/http/Response;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
dup
astore 2
monitorenter
1: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
invokeinterface java.util.List.size:()I
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 16
4: StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.Response java.util.List top int int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 3
start local 3 5: aload 3
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 15
6: ldc "Completing response (streamid={0}): {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
7: aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 3
aastore
8: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
9: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 11
10: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Completing responseCF(%d) with response headers"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
11: StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.Response java.util.List java.util.concurrent.CompletableFuture int int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
aload 3
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
12: aload 3
aload 1
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
13: aload 2
monitorexit
14: return
15: StackMap locals:
StackMap stack:
iinc 5 1
end local 3 StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.Response java.util.List top int int
StackMap stack:
16: iload 5
iload 4
if_icmplt 4
end local 5 17: aload 1
invokestatic jdk.internal.net.http.common.MinimalFuture.completedFuture:(Ljava/lang/Object;)Ljdk/internal/net/http/common/MinimalFuture;
astore 3
start local 3 18: ldc "Created completed future (streamid={0}): {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
19: aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 3
aastore
20: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
21: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 23
22: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Adding completed responseCF(0) with response headers"
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
23: StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.Response java.util.List java.util.concurrent.CompletableFuture int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 end local 3 24: aload 2
monitorexit
25: goto 28
StackMap locals: jdk.internal.net.http.Stream jdk.internal.net.http.Response java.util.List
StackMap stack: java.lang.Throwable
26: aload 2
monitorexit
27: athrow
28: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljdk/internal/net/http/Stream<TT;>;
0 29 1 resp Ljdk/internal/net/http/Response;
5 16 3 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
18 24 3 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
2 24 4 cfs_len I
3 17 5 i I
Exception table:
from to target type
1 14 26 any
15 25 26 any
26 27 26 any
MethodParameters:
Name Flags
resp
synchronized void requestSent();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield jdk.internal.net.http.Stream.requestSent:Z
1: aload 0
getfield jdk.internal.net.http.Stream.responseReceived:Z
ifeq 3
2: aload 0
invokevirtual jdk.internal.net.http.Stream.close:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Stream<TT;>;
synchronized void responseReceived();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield jdk.internal.net.http.Stream.responseReceived:Z
1: aload 0
getfield jdk.internal.net.http.Stream.requestSent:Z
ifeq 3
2: aload 0
invokevirtual jdk.internal.net.http.Stream.close:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/Stream<TT;>;
void completeResponseExceptionally(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
dup
astore 2
monitorenter
1: iconst_0
istore 3
start local 3 2: goto 10
3: StackMap locals: java.util.List int
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 4
start local 4 4: aload 4
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 9
5: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
iload 3
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
6: aload 4
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
7: aload 2
monitorexit
8: return
end local 4 9: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 3 11: aload 0
getfield jdk.internal.net.http.Stream.response_cfs:Ljava/util/List;
aload 1
invokestatic jdk.internal.net.http.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
12: aload 2
monitorexit
13: goto 16
StackMap locals: jdk.internal.net.http.Stream java.lang.Throwable java.util.List
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljdk/internal/net/http/Stream<TT;>;
0 17 1 t Ljava/lang/Throwable;
2 11 3 i I
4 9 4 cf Ljava/util/concurrent/CompletableFuture<Ljdk/internal/net/http/Response;>;
Exception table:
from to target type
1 8 14 any
9 13 14 any
14 15 14 any
MethodParameters:
Name Flags
t
java.util.concurrent.CompletableFuture<java.lang.Void> sendBodyImpl();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic accept(Ljdk/internal/net/http/Stream;)Ljava/util/function/BiConsumer;
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;Ljava/lang/Object;)V
jdk/internal/net/http/Stream.lambda$12(Ljava/lang/Void;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Void;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
pop
1: aload 0
getfield jdk.internal.net.http.Stream.requestPublisher:Ljava/net/http/HttpRequest$BodyPublisher;
ifnull 5
2: new jdk.internal.net.http.Stream$RequestSubscriber
dup
aload 0
aload 0
getfield jdk.internal.net.http.Stream.requestContentLen:J
invokespecial jdk.internal.net.http.Stream$RequestSubscriber.<init>:(Ljdk/internal/net/http/Stream;J)V
astore 1
start local 1 3: aload 0
getfield jdk.internal.net.http.Stream.requestPublisher:Ljava/net/http/HttpRequest$BodyPublisher;
aload 0
aload 1
dup_x1
putfield jdk.internal.net.http.Stream.requestSubscriber:Ljdk/internal/net/http/Stream$RequestSubscriber;
invokeinterface java.net.http.HttpRequest$BodyPublisher.subscribe:(Ljava/util/concurrent/Flow$Subscriber;)V
end local 1 4: goto 10
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
aconst_null
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 1
start local 1 8: aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
9: aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 1 10: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/internal/net/http/Stream<TT;>;
3 4 1 subscriber Ljdk/internal/net/http/Stream<TT;>.RequestSubscriber;
8 10 1 t Ljava/lang/Throwable;
Exception table:
from to target type
1 6 7 Class java.lang.Throwable
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
void cancel();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Stream "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " cancelled"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
invokevirtual jdk.internal.net.http.Stream.cancel:(Ljava/io/IOException;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Stream<TT;>;
void onSubscriptionError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
1: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 2
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "Got subscription error: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.Stream.stopRequested:Z
3: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/net/http/Stream<TT;>;
0 5 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
void cancel(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Stream<TT;>;
0 2 1 cause Ljava/io/IOException;
MethodParameters:
Name Flags
cause
void connectionClosing(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
ifnonnull 1
aload 0
getfield jdk.internal.net.http.Stream.pendingResponseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
2: StackMap locals:
StackMap stack: java.net.http.HttpResponse$BodySubscriber
astore 2
start local 2 3: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
4: aload 2
ifnull 7
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
ifne 7
aload 0
getfield jdk.internal.net.http.Stream.inputQ:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.isEmpty:()Z
ifne 7
5: aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
6: goto 8
StackMap locals: java.util.concurrent.Flow$Subscriber
StackMap stack:
7: aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.cancelImpl:(Ljava/lang/Throwable;)V
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/net/http/Stream<TT;>;
0 9 1 cause Ljava/lang/Throwable;
3 9 2 subscriber Ljava/util/concurrent/Flow$Subscriber<*>;
MethodParameters:
Name Flags
cause
void cancelImpl(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
1: aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
invokeinterface jdk.internal.net.http.common.Logger.on:()Z
ifeq 2
aload 0
getfield jdk.internal.net.http.Stream.debug:Ljdk/internal/net/http/common/Logger;
ldc "cancelling stream {0}: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 1
aastore
invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
invokestatic jdk.internal.net.http.common.Log.trace:()Z
ifeq 4
3: ldc "cancelling stream {0}: {1}\n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 1
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifeq 5
iconst_0
goto 6
StackMap locals:
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: dup
istore 2
start local 2 7: ifeq 17
8: aload 0
dup
astore 3
monitorenter
9: aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifeq 10
iconst_0
goto 11
StackMap locals: int jdk.internal.net.http.Stream
StackMap stack:
10: iconst_1
StackMap locals:
StackMap stack: int
11: dup
istore 2
ifeq 13
12: aload 0
iconst_1
putfield jdk.internal.net.http.Stream.closed:Z
13: StackMap locals:
StackMap stack:
aload 3
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 3
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
iload 2
ifeq 20
18: aload 0
getfield jdk.internal.net.http.Stream.responseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
ifnonnull 19
aload 0
getfield jdk.internal.net.http.Stream.pendingResponseSubscriber:Ljava/net/http/HttpResponse$BodySubscriber;
ifnull 20
19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.sched:Ljdk/internal/net/http/common/SequentialScheduler;
invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
20: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.internal.net.http.Stream.completeResponseExceptionally:(Ljava/lang/Throwable;)V
21: aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
invokevirtual java.util.concurrent.CompletableFuture.isDone:()Z
ifne 23
22: aload 0
getfield jdk.internal.net.http.Stream.requestBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
23: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
ifnull 25
24: aload 0
getfield jdk.internal.net.http.Stream.responseBodyCF:Ljava/util/concurrent/CompletableFuture;
aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
25: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
ifeq 35
26: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.decrementStreamsCount:(I)V
27: aload 1
invokestatic jdk.internal.net.http.common.Utils.getCompletionCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 1
28: aload 1
instanceof java.io.EOFException
ifeq 31
29: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.closeStream:(I)V
30: goto 35
31: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
bipush 8
invokevirtual jdk.internal.net.http.Http2Connection.resetStream:(II)V
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: astore 3
start local 3 34: aload 3
invokestatic jdk.internal.net.http.common.Log.logError:(Ljava/lang/Throwable;)V
end local 3 35: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Ljdk/internal/net/http/Stream<TT;>;
0 36 1 e Ljava/lang/Throwable;
7 36 2 closing Z
34 35 3 ex Ljava/lang/Throwable;
Exception table:
from to target type
9 14 15 any
15 16 15 any
25 32 33 Class java.lang.Throwable
MethodParameters:
Name Flags
e
void close();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifeq 1
return
1: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
2: aload 0
getfield jdk.internal.net.http.Stream.closed:Z
ifeq 4
aload 1
monitorexit
3: return
4: StackMap locals: jdk.internal.net.http.Stream
StackMap stack:
aload 0
iconst_1
putfield jdk.internal.net.http.Stream.closed:Z
5: aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
ldc "Closing stream {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
10: aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual jdk.internal.net.http.Http2Connection.closeStream:(I)V
11: ldc "Stream {0} closed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
12: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/internal/net/http/Stream<TT;>;
Exception table:
from to target type
2 3 7 any
4 6 7 any
7 8 7 any
synchronized boolean isCanceled();
descriptor: ()Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/Stream<TT;>;
synchronized java.lang.Throwable getCancelCause();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.Stream.errorRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Throwable
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
final java.lang.String dbgString();
descriptor: ()Ljava/lang/String;
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
getfield jdk.internal.net.http.Stream.connection:Ljdk/internal/net/http/Http2Connection;
invokevirtual jdk.internal.net.http.Http2Connection.dbgString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "/Stream("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.internal.net.http.Stream.streamid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
private static void lambda$4(jdk.internal.net.http.PushGroup, java.lang.Object, java.lang.Throwable);
descriptor: (Ljdk/internal/net/http/PushGroup;Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 1 start local 2 0: aload 0
aload 2
invokevirtual jdk.internal.net.http.PushGroup.pushError:(Ljava/lang/Throwable;)V
return
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 t TT;
0 1 2 e Ljava/lang/Throwable;
private jdk.internal.net.http.ExchangeImpl lambda$6(java.lang.Void);
descriptor: (Ljava/lang/Void;)Ljdk/internal/net/http/ExchangeImpl;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
0 1 1 v Ljava/lang/Void;
private static java.io.IOException lambda$7();
descriptor: ()Ljava/io/IOException;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=0, args_size=0
0: new java.io.IOException
dup
ldc "no statuscode in response"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
private static void lambda$8(jdk.internal.net.http.Stream$PushedStream, jdk.internal.net.http.PushGroup, java.util.concurrent.CompletableFuture, java.net.http.HttpResponse, java.lang.Throwable);
descriptor: (Ljdk/internal/net/http/Stream$PushedStream;Ljdk/internal/net/http/PushGroup;Ljava/util/concurrent/CompletableFuture;Ljava/net/http/HttpResponse;Ljava/lang/Throwable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=7, locals=5, args_size=5
start local 3 start local 4 0: aload 4
invokestatic jdk.internal.net.http.common.Utils.getCompletionCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
astore 4
1: invokestatic jdk.internal.net.http.common.Log.trace:()Z
ifeq 8
2: ldc "Push completed on stream {0} for {1}{2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
3: aload 0
getfield jdk.internal.net.http.Stream$PushedStream.streamid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 3
aastore
dup
iconst_2
4: aload 4
ifnonnull 5
ldc ""
goto 6
StackMap locals: jdk.internal.net.http.Stream$PushedStream jdk.internal.net.http.PushGroup java.util.concurrent.CompletableFuture java.net.http.HttpResponse java.lang.Throwable
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
5: new java.lang.StringBuilder
dup
ldc " with exception "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals: jdk.internal.net.http.Stream$PushedStream jdk.internal.net.http.PushGroup java.util.concurrent.CompletableFuture java.net.http.HttpResponse java.lang.Throwable
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
6: aastore
7: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 4
ifnull 12
9: aload 1
aload 4
invokevirtual jdk.internal.net.http.PushGroup.pushError:(Ljava/lang/Throwable;)V
10: aload 2
aload 4
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
11: goto 13
12: StackMap locals:
StackMap stack:
aload 2
aload 3
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
13: StackMap locals:
StackMap stack:
aload 1
invokevirtual jdk.internal.net.http.PushGroup.pushCompleted:()V
14: return
end local 4 end local 3 LocalVariableTable:
Start End Slot Name Signature
0 15 3 resp Ljava/net/http/HttpResponse<TT;>;
0 15 4 t Ljava/lang/Throwable;
private static boolean (java.net.http.HttpHeaders, java.lang.String, java.lang.String);
descriptor: (Ljava/net/http/HttpHeaders;Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.net.http.HttpHeaders.firstValue:(Ljava/lang/String;)Ljava/util/Optional;
invokevirtual java.util.Optional.isEmpty:()Z
ireturn
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 k Ljava/lang/String;
0 1 2 v Ljava/lang/String;
private static jdk.internal.net.http.Response lambda$10(jdk.internal.net.http.Response);
descriptor: (Ljdk/internal/net/http/Response;)Ljdk/internal/net/http/Response;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 r Ljdk/internal/net/http/Response;
private static void lambda$11(jdk.internal.net.http.PushGroup, jdk.internal.net.http.Response, java.lang.Throwable);
descriptor: (Ljdk/internal/net/http/PushGroup;Ljdk/internal/net/http/Response;Ljava/lang/Throwable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 1 start local 2 0: aload 0
aload 2
invokestatic jdk.internal.net.http.common.Utils.getCompletionCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
invokevirtual jdk.internal.net.http.PushGroup.pushError:(Ljava/lang/Throwable;)V
return
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 t Ljdk/internal/net/http/Response;
0 1 2 e Ljava/lang/Throwable;
private void lambda$12(java.lang.Void, java.lang.Throwable);
descriptor: (Ljava/lang/Void;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual jdk.internal.net.http.Stream.requestSent:()V
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/Stream<TT;>;
0 1 1 v Ljava/lang/Void;
0 1 2 t Ljava/lang/Throwable;
}
Signature: <T:Ljava/lang/Object;>Ljdk/internal/net/http/ExchangeImpl<TT;>;
SourceFile: "Stream.java"
NestMembers:
jdk.internal.net.http.Stream$HeadersConsumer jdk.internal.net.http.Stream$PushedStream jdk.internal.net.http.Stream$RequestSubscriber jdk.internal.net.http.Stream$StreamWindowUpdateSender
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Version = java.net.http.HttpClient$Version of java.net.http.HttpClient
public abstract BodyPublisher = java.net.http.HttpRequest$BodyPublisher of java.net.http.HttpRequest
public abstract BodyHandler = java.net.http.HttpResponse$BodyHandler of java.net.http.HttpResponse
public abstract BodySubscriber = java.net.http.HttpResponse$BodySubscriber of java.net.http.HttpResponse
public abstract ResponseInfo = java.net.http.HttpResponse$ResponseInfo of java.net.http.HttpResponse
public abstract Subscriber = java.util.concurrent.Flow$Subscriber of java.util.concurrent.Flow
public abstract Subscription = java.util.concurrent.Flow$Subscription of java.util.concurrent.Flow
final ConnectionWindowUpdateSender = jdk.internal.net.http.Http2Connection$ConnectionWindowUpdateSender of jdk.internal.net.http.Http2Connection
abstract Acceptor = jdk.internal.net.http.PushGroup$Acceptor of jdk.internal.net.http.PushGroup
private HeadersConsumer = jdk.internal.net.http.Stream$HeadersConsumer of jdk.internal.net.http.Stream
PushedStream = jdk.internal.net.http.Stream$PushedStream of jdk.internal.net.http.Stream
RequestSubscriber = jdk.internal.net.http.Stream$RequestSubscriber of jdk.internal.net.http.Stream
final StreamWindowUpdateSender = jdk.internal.net.http.Stream$StreamWindowUpdateSender of jdk.internal.net.http.Stream