class jdk.internal.net.http.PushGroup<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.net.http.PushGroup
super_class: java.lang.Object
{
private final java.net.http.HttpRequest initiatingRequest;
descriptor: Ljava/net/http/HttpRequest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.util.concurrent.CompletableFuture<java.lang.Void> noMorePushesCF;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
volatile java.lang.Throwable error;
descriptor: Ljava/lang/Throwable;
flags: (0x0040) ACC_VOLATILE
final java.net.http.HttpResponse$PushPromiseHandler<T> pushPromiseHandler;
descriptor: Ljava/net/http/HttpResponse$PushPromiseHandler;
flags: (0x0010) ACC_FINAL
Signature: Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;
private final java.util.concurrent.Executor executor;
descriptor: Ljava/util/concurrent/Executor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
int numberOfPushes;
descriptor: I
flags: (0x0000)
int remainingPushes;
descriptor: I
flags: (0x0000)
boolean noMorePushes;
descriptor: Z
flags: (0x0000)
void <init>(java.net.http.HttpResponse$PushPromiseHandler<T>, jdk.internal.net.http.HttpRequestImpl, java.util.concurrent.Executor);
descriptor: (Ljava/net/http/HttpResponse$PushPromiseHandler;Ljdk/internal/net/http/HttpRequestImpl;Ljava/util/concurrent/Executor;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
aload 3
invokespecial jdk.internal.net.http.PushGroup.<init>:(Ljava/net/http/HttpResponse$PushPromiseHandler;Ljdk/internal/net/http/HttpRequestImpl;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/Executor;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/net/http/PushGroup<TT;>;
0 2 1 pushPromiseHandler Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;
0 2 2 initiatingRequest Ljdk/internal/net/http/HttpRequestImpl;
0 2 3 executor Ljava/util/concurrent/Executor;
Signature: (Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;Ljdk/internal/net/http/HttpRequestImpl;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
pushPromiseHandler
initiatingRequest
executor
private void <init>(java.net.http.HttpResponse$PushPromiseHandler<T>, jdk.internal.net.http.HttpRequestImpl, java.util.concurrent.CompletableFuture<java.net.http.HttpResponse<T>>, java.util.concurrent.Executor);
descriptor: (Ljava/net/http/HttpResponse$PushPromiseHandler;Ljdk/internal/net/http/HttpRequestImpl;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/Executor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield jdk.internal.net.http.PushGroup.noMorePushes:Z
2: aload 0
new jdk.internal.net.http.common.MinimalFuture
dup
invokespecial jdk.internal.net.http.common.MinimalFuture.<init>:()V
putfield jdk.internal.net.http.PushGroup.noMorePushesCF:Ljava/util/concurrent/CompletableFuture;
3: aload 0
aload 1
putfield jdk.internal.net.http.PushGroup.pushPromiseHandler:Ljava/net/http/HttpResponse$PushPromiseHandler;
4: aload 0
aload 2
putfield jdk.internal.net.http.PushGroup.initiatingRequest:Ljava/net/http/HttpRequest;
5: aload 0
aload 4
putfield jdk.internal.net.http.PushGroup.executor:Ljava/util/concurrent/Executor;
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/net/http/PushGroup<TT;>;
0 7 1 pushPromiseHandler Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;
0 7 2 initiatingRequest Ljdk/internal/net/http/HttpRequestImpl;
0 7 3 mainResponse Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;
0 7 4 executor Ljava/util/concurrent/Executor;
Signature: (Ljava/net/http/HttpResponse$PushPromiseHandler<TT;>;Ljdk/internal/net/http/HttpRequestImpl;Ljava/util/concurrent/CompletableFuture<Ljava/net/http/HttpResponse<TT;>;>;Ljava/util/concurrent/Executor;)V
MethodParameters:
Name Flags
pushPromiseHandler
initiatingRequest
mainResponse
executor
jdk.internal.net.http.PushGroup$Acceptor<T> acceptPushRequest(java.net.http.HttpRequest);
descriptor: (Ljava/net/http/HttpRequest;)Ljdk/internal/net/http/PushGroup$Acceptor;
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: new jdk.internal.net.http.PushGroup$AcceptorImpl
dup
aload 0
getfield jdk.internal.net.http.PushGroup.executor:Ljava/util/concurrent/Executor;
invokespecial jdk.internal.net.http.PushGroup$AcceptorImpl.<init>:(Ljava/util/concurrent/Executor;)V
astore 2
start local 2 1: aload 0
getfield jdk.internal.net.http.PushGroup.pushPromiseHandler:Ljava/net/http/HttpResponse$PushPromiseHandler;
aload 0
getfield jdk.internal.net.http.PushGroup.initiatingRequest:Ljava/net/http/HttpRequest;
aload 1
aload 2
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic apply(Ljdk/internal/net/http/PushGroup$AcceptorImpl;)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/PushGroup$AcceptorImpl.accept(Ljava/net/http/HttpResponse$BodyHandler;)Ljava/util/concurrent/CompletableFuture; (5)
(Ljava/net/http/HttpResponse$BodyHandler;)Ljava/util/concurrent/CompletableFuture;
invokeinterface java.net.http.HttpResponse$PushPromiseHandler.applyPushPromise:(Ljava/net/http/HttpRequest;Ljava/net/http/HttpRequest;Ljava/util/function/Function;)V
2: goto 8
StackMap locals: jdk.internal.net.http.PushGroup java.net.http.HttpRequest jdk.internal.net.http.PushGroup$AcceptorImpl
StackMap stack: java.lang.Throwable
3: astore 3
start local 3 4: aload 2
invokevirtual jdk.internal.net.http.PushGroup$AcceptorImpl.accepted:()Z
ifeq 7
5: aload 2
invokevirtual jdk.internal.net.http.PushGroup$AcceptorImpl.cf:()Ljava/util/concurrent/CompletableFuture;
astore 4
start local 4 6: aload 4
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 4 7: StackMap locals: java.lang.Throwable
StackMap stack:
aload 3
athrow
end local 3 8: StackMap locals:
StackMap stack:
aload 0
dup
astore 3
monitorenter
9: aload 2
invokevirtual jdk.internal.net.http.PushGroup$AcceptorImpl.accepted:()Z
ifeq 12
10: aload 0
dup
getfield jdk.internal.net.http.PushGroup.numberOfPushes:I
iconst_1
iadd
putfield jdk.internal.net.http.PushGroup.numberOfPushes:I
11: aload 0
dup
getfield jdk.internal.net.http.PushGroup.remainingPushes:I
iconst_1
iadd
putfield jdk.internal.net.http.PushGroup.remainingPushes:I
12: StackMap locals: jdk.internal.net.http.PushGroup
StackMap stack:
aload 2
aload 3
monitorexit
13: areturn
14: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
15: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/internal/net/http/PushGroup<TT;>;
0 16 1 pushRequest Ljava/net/http/HttpRequest;
1 16 2 acceptor Ljdk/internal/net/http/PushGroup$AcceptorImpl<TT;>;
4 8 3 t Ljava/lang/Throwable;
6 7 4 cf Ljava/util/concurrent/CompletableFuture<*>;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
9 13 14 any
14 15 14 any
Signature: (Ljava/net/http/HttpRequest;)Ljdk/internal/net/http/PushGroup$Acceptor<TT;>;
MethodParameters:
Name Flags
pushRequest
synchronized void noMorePushes(boolean);
descriptor: (Z)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield jdk.internal.net.http.PushGroup.noMorePushes:Z
1: aload 0
invokevirtual jdk.internal.net.http.PushGroup.checkIfCompleted:()V
2: aload 0
getfield jdk.internal.net.http.PushGroup.noMorePushesCF:Ljava/util/concurrent/CompletableFuture;
aconst_null
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/PushGroup<TT;>;
0 4 1 noMore Z
MethodParameters:
Name Flags
noMore
synchronized java.util.concurrent.CompletableFuture<java.lang.Void> pushesCF();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.PushGroup.noMorePushesCF:Ljava/util/concurrent/CompletableFuture;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/PushGroup<TT;>;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Void;>;
synchronized boolean noMorePushes();
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.PushGroup.noMorePushes:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/net/http/PushGroup<TT;>;
synchronized void pushCompleted();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield jdk.internal.net.http.PushGroup.remainingPushes:I
iconst_1
isub
putfield jdk.internal.net.http.PushGroup.remainingPushes:I
1: aload 0
invokevirtual jdk.internal.net.http.PushGroup.checkIfCompleted:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/PushGroup<TT;>;
synchronized void checkIfCompleted();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=1, args_size=1
start local 0 0: invokestatic jdk.internal.net.http.common.Log.trace:()Z
ifeq 8
1: ldc "PushGroup remainingPushes={0} error={1} noMorePushes={2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
2: aload 0
getfield jdk.internal.net.http.PushGroup.remainingPushes:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
3: aload 0
getfield jdk.internal.net.http.PushGroup.error:Ljava/lang/Throwable;
ifnonnull 4
aload 0
getfield jdk.internal.net.http.PushGroup.error:Ljava/lang/Throwable;
goto 5
StackMap locals: jdk.internal.net.http.PushGroup
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int
4: aload 0
getfield jdk.internal.net.http.PushGroup.error:Ljava/lang/Throwable;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
StackMap locals: jdk.internal.net.http.PushGroup
StackMap stack: java.lang.String java.lang.Object[] java.lang.Object[] int java.io.Serializable
5: aastore
dup
iconst_2
6: aload 0
getfield jdk.internal.net.http.PushGroup.noMorePushes:Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
7: invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.PushGroup.remainingPushes:I
ifne 11
aload 0
getfield jdk.internal.net.http.PushGroup.error:Ljava/lang/Throwable;
ifnonnull 11
aload 0
getfield jdk.internal.net.http.PushGroup.noMorePushes:Z
ifeq 11
9: invokestatic jdk.internal.net.http.common.Log.trace:()Z
ifeq 11
10: ldc "push completed"
iconst_0
anewarray java.lang.Object
invokestatic jdk.internal.net.http.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/net/http/PushGroup<TT;>;
synchronized void pushError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield jdk.internal.net.http.PushGroup.error:Ljava/lang/Throwable;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/PushGroup<TT;>;
0 4 1 t Ljava/lang/Throwable;
MethodParameters:
Name Flags
t
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "PushGroup.java"
NestMembers:
jdk.internal.net.http.PushGroup$Acceptor jdk.internal.net.http.PushGroup$AcceptorImpl
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract BodyHandler = java.net.http.HttpResponse$BodyHandler of java.net.http.HttpResponse
public abstract PushPromiseHandler = java.net.http.HttpResponse$PushPromiseHandler of java.net.http.HttpResponse
abstract Acceptor = jdk.internal.net.http.PushGroup$Acceptor of jdk.internal.net.http.PushGroup
private AcceptorImpl = jdk.internal.net.http.PushGroup$AcceptorImpl of jdk.internal.net.http.PushGroup