public class jdk.internal.net.http.websocket.MessageQueue
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.net.http.websocket.MessageQueue
super_class: java.lang.Object
{
private final jdk.internal.net.http.websocket.MessageQueue$Message[] elements;
descriptor: [Ljdk/internal/net/http/websocket/MessageQueue$Message;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicInteger tail;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int head;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$jdk$internal$net$http$websocket$MessageQueue$Type;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, 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/websocket/MessageQueue;
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.websocket.MessageQueue.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield jdk.internal.net.http.websocket.MessageQueue.tail:Ljava/util/concurrent/atomic/AtomicInteger;
2: iload 1
iconst_1
if_icmpge 4
3: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
4: StackMap locals: jdk.internal.net.http.websocket.MessageQueue int
StackMap stack:
iload 1
iconst_1
iadd
invokestatic jdk.internal.net.http.common.Utils.pow2Size:(I)I
istore 2
start local 2 5: getstatic jdk.internal.net.http.websocket.MessageQueue.$assertionsDisabled:Z
ifne 6
iload 2
iconst_2
irem
ifeq 6
new java.lang.AssertionError
dup
iload 2
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
6: StackMap locals: int
StackMap stack:
iload 2
anewarray jdk.internal.net.http.websocket.MessageQueue$Message
astore 3
start local 3 7: iconst_0
istore 4
start local 4 8: goto 11
9: StackMap locals: jdk.internal.net.http.websocket.MessageQueue$Message[] int
StackMap stack:
aload 3
iload 4
new jdk.internal.net.http.websocket.MessageQueue$Message
dup
invokespecial jdk.internal.net.http.websocket.MessageQueue$Message.<init>:()V
aastore
10: iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 3
arraylength
if_icmplt 9
end local 4 12: aload 0
aload 3
putfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
13: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 14 1 capacity I
5 14 2 s I
7 14 3 array [Ljdk/internal/net/http/websocket/MessageQueue$Message;
8 12 4 i I
MethodParameters:
Name Flags
capacity
protected static int effectiveCapacityOf(int);
descriptor: (I)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
iconst_1
iadd
invokestatic jdk.internal.net.http.common.Utils.pow2Size:(I)I
iconst_1
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 n I
MethodParameters:
Name Flags
n
public <T> void addText(java.nio.CharBuffer, boolean, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<T>);
descriptor: (Ljava/nio/CharBuffer;ZLjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.TEXT:Ljdk/internal/net/http/websocket/MessageQueue$Type;
aconst_null
aconst_null
aload 1
iload 2
iconst_m1
aload 3
1: aload 4
aload 5
2: invokevirtual jdk.internal.net.http.websocket.MessageQueue.add:(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
3: return
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 4 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 4 1 message Ljava/nio/CharBuffer;
0 4 2 isLast Z
0 4 3 attachment TT;
0 4 4 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 4 5 future Ljava/util/concurrent/CompletableFuture<TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/nio/CharBuffer;ZTT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<TT;>;)V
MethodParameters:
Name Flags
message
isLast
attachment
action
future
private <T> void add(jdk.internal.net.http.websocket.MessageQueue$Type, java.util.function.Supplier<? extends java.nio.ByteBuffer>, java.nio.ByteBuffer, java.nio.CharBuffer, boolean, int, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<? super T>);
descriptor: (Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=14, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: getstatic jdk.internal.net.http.websocket.MessageQueue.$assertionsDisabled:Z
ifne 5
aload 1
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.PONG:Ljdk/internal/net/http/websocket/MessageQueue$Type;
if_acmpne 5
aload 3
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: aload 2
ifnonnull 3
iconst_1
goto 4
StackMap locals:
StackMap stack: int
3: iconst_0
StackMap locals: jdk.internal.net.http.websocket.MessageQueue jdk.internal.net.http.websocket.MessageQueue$Type java.util.function.Supplier java.nio.ByteBuffer java.nio.CharBuffer int int java.lang.Object java.util.function.BiConsumer java.util.concurrent.CompletableFuture
StackMap stack: int int
4: ixor
ifne 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.head:I
istore 10
start local 10 6: aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.tail:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
istore 11
start local 11 7: iload 11
iconst_1
iadd
aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
arraylength
iconst_1
isub
iand
istore 12
start local 12 8: iload 12
iload 10
if_icmpne 10
9: new java.io.IOException
dup
ldc "Queue full"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: int int int
StackMap stack:
aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.tail:Ljava/util/concurrent/atomic/AtomicInteger;
iload 11
iload 12
invokevirtual java.util.concurrent.atomic.AtomicInteger.compareAndSet:(II)Z
ifeq 5
11: aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
iload 11
aaload
astore 13
start local 13 12: aload 13
getfield jdk.internal.net.http.websocket.MessageQueue$Message.ready:Z
ifeq 14
13: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
14: StackMap locals: jdk.internal.net.http.websocket.MessageQueue$Message
StackMap stack:
aload 13
aload 1
putfield jdk.internal.net.http.websocket.MessageQueue$Message.type:Ljdk/internal/net/http/websocket/MessageQueue$Type;
15: aload 13
aload 2
putfield jdk.internal.net.http.websocket.MessageQueue$Message.binarySupplier:Ljava/util/function/Supplier;
16: aload 13
aload 3
putfield jdk.internal.net.http.websocket.MessageQueue$Message.binary:Ljava/nio/ByteBuffer;
17: aload 13
aload 4
putfield jdk.internal.net.http.websocket.MessageQueue$Message.text:Ljava/nio/CharBuffer;
18: aload 13
iload 5
putfield jdk.internal.net.http.websocket.MessageQueue$Message.isLast:Z
19: aload 13
iload 6
putfield jdk.internal.net.http.websocket.MessageQueue$Message.statusCode:I
20: aload 13
aload 7
putfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
21: aload 13
aload 8
putfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
22: aload 13
aload 9
putfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
23: aload 13
iconst_1
putfield jdk.internal.net.http.websocket.MessageQueue$Message.ready:Z
24: return
end local 13 end local 12 end local 11 end local 10 end local 9 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 25 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 25 1 type Ljdk/internal/net/http/websocket/MessageQueue$Type;
0 25 2 binarySupplier Ljava/util/function/Supplier<+Ljava/nio/ByteBuffer;>;
0 25 3 binary Ljava/nio/ByteBuffer;
0 25 4 text Ljava/nio/CharBuffer;
0 25 5 isLast Z
0 25 6 statusCode I
0 25 7 attachment TT;
0 25 8 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 25 9 future Ljava/util/concurrent/CompletableFuture<-TT;>;
6 25 10 h I
7 25 11 currentTail I
8 25 12 newTail I
12 25 13 t Ljdk/internal/net/http/websocket/MessageQueue$Message;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier<+Ljava/nio/ByteBuffer;>;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZITT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<-TT;>;)V
MethodParameters:
Name Flags
type
binarySupplier
binary
text
isLast
statusCode
attachment
action
future
public <T> void addBinary(java.nio.ByteBuffer, boolean, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<? super T>);
descriptor: (Ljava/nio/ByteBuffer;ZLjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.BINARY:Ljdk/internal/net/http/websocket/MessageQueue$Type;
aconst_null
aload 1
aconst_null
iload 2
iconst_m1
aload 3
1: aload 4
aload 5
2: invokevirtual jdk.internal.net.http.websocket.MessageQueue.add:(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
3: return
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 4 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 4 1 message Ljava/nio/ByteBuffer;
0 4 2 isLast Z
0 4 3 attachment TT;
0 4 4 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 4 5 future Ljava/util/concurrent/CompletableFuture<-TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;ZTT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<-TT;>;)V
MethodParameters:
Name Flags
message
isLast
attachment
action
future
public <T> void addPing(java.nio.ByteBuffer, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<? super T>);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.PING:Ljdk/internal/net/http/websocket/MessageQueue$Type;
aconst_null
aload 1
aconst_null
iconst_0
iconst_m1
aload 2
1: aload 3
aload 4
2: invokevirtual jdk.internal.net.http.websocket.MessageQueue.add:(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 4 1 message Ljava/nio/ByteBuffer;
0 4 2 attachment TT;
0 4 3 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 4 4 future Ljava/util/concurrent/CompletableFuture<-TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;TT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<-TT;>;)V
MethodParameters:
Name Flags
message
attachment
action
future
public <T> void addPong(java.nio.ByteBuffer, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<? super T>);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.PONG:Ljdk/internal/net/http/websocket/MessageQueue$Type;
aconst_null
aload 1
aconst_null
iconst_0
iconst_m1
aload 2
1: aload 3
aload 4
2: invokevirtual jdk.internal.net.http.websocket.MessageQueue.add:(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 4 1 message Ljava/nio/ByteBuffer;
0 4 2 attachment TT;
0 4 3 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 4 4 future Ljava/util/concurrent/CompletableFuture<-TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;TT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<-TT;>;)V
MethodParameters:
Name Flags
message
attachment
action
future
public <T> void addPong(java.util.function.Supplier<? extends java.nio.ByteBuffer>, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<? super T>);
descriptor: (Ljava/util/function/Supplier;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.PONG:Ljdk/internal/net/http/websocket/MessageQueue$Type;
aload 1
aconst_null
aconst_null
iconst_0
iconst_m1
aload 2
1: aload 3
aload 4
2: invokevirtual jdk.internal.net.http.websocket.MessageQueue.add:(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 4 1 message Ljava/util/function/Supplier<+Ljava/nio/ByteBuffer;>;
0 4 2 attachment TT;
0 4 3 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 4 4 future Ljava/util/concurrent/CompletableFuture<-TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Supplier<+Ljava/nio/ByteBuffer;>;TT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<-TT;>;)V
MethodParameters:
Name Flags
message
attachment
action
future
public <T> void addClose(int, java.nio.CharBuffer, T, java.util.function.BiConsumer<? super T, ? super java.lang.Throwable>, java.util.concurrent.CompletableFuture<? super T>);
descriptor: (ILjava/nio/CharBuffer;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.CLOSE:Ljdk/internal/net/http/websocket/MessageQueue$Type;
aconst_null
aconst_null
aload 2
iconst_0
iload 1
1: aload 3
aload 4
aload 5
2: invokevirtual jdk.internal.net.http.websocket.MessageQueue.add:(Ljdk/internal/net/http/websocket/MessageQueue$Type;Ljava/util/function/Supplier;Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;ZILjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)V
3: return
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 4 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 4 1 statusCode I
0 4 2 reason Ljava/nio/CharBuffer;
0 4 3 attachment TT;
0 4 4 action Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;
0 4 5 future Ljava/util/concurrent/CompletableFuture<-TT;>;
Exceptions:
throws java.io.IOException
Signature: <T:Ljava/lang/Object;>(ILjava/nio/CharBuffer;TT;Ljava/util/function/BiConsumer<-TT;-Ljava/lang/Throwable;>;Ljava/util/concurrent/CompletableFuture<-TT;>;)V
MethodParameters:
Name Flags
statusCode
reason
attachment
action
future
public <R, E extends java.lang.Throwable> R peek(jdk.internal.net.http.websocket.MessageQueue$QueueCallback<R, E>) throws E;
descriptor: (Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.head:I
aaload
astore 2
start local 2 1: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.ready:Z
ifne 3
2: aload 1
invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onEmpty:()Ljava/lang/Object;
areturn
3: StackMap locals: jdk.internal.net.http.websocket.MessageQueue$Message
StackMap stack:
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.type:Ljdk/internal/net/http/websocket/MessageQueue$Type;
astore 3
start local 3 4: invokestatic jdk.internal.net.http.websocket.MessageQueue.$SWITCH_TABLE$jdk$internal$net$http$websocket$MessageQueue$Type:()[I
aload 3
invokevirtual jdk.internal.net.http.websocket.MessageQueue$Type.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 5
2: 11
3: 17
4: 23
5: 34
default: 40
}
5: StackMap locals: jdk.internal.net.http.websocket.MessageQueue$Type
StackMap stack:
aload 1
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.text:Ljava/nio/CharBuffer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.isLast:Z
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
6: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
7: invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onText:(Ljava/nio/CharBuffer;ZLjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)Ljava/lang/Object;
8: areturn
9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 10: aload 4
athrow
end local 4 11: StackMap locals:
StackMap stack:
aload 1
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.binary:Ljava/nio/ByteBuffer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.isLast:Z
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
12: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
13: invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onBinary:(Ljava/nio/ByteBuffer;ZLjava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)Ljava/lang/Object;
14: areturn
15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 16: aload 4
athrow
end local 4 17: StackMap locals:
StackMap stack:
aload 1
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.binary:Ljava/nio/ByteBuffer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
18: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
19: invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onPing:(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)Ljava/lang/Object;
20: areturn
21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 22: aload 4
athrow
end local 4 23: StackMap locals:
StackMap stack:
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.binarySupplier:Ljava/util/function/Supplier;
ifnull 28
24: aload 1
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.binarySupplier:Ljava/util/function/Supplier;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
25: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
26: invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onPong:(Ljava/util/function/Supplier;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)Ljava/lang/Object;
27: areturn
28: StackMap locals:
StackMap stack:
aload 1
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.binary:Ljava/nio/ByteBuffer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
29: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
30: invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onPong:(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)Ljava/lang/Object;
31: areturn
32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 33: aload 4
athrow
end local 4 34: StackMap locals:
StackMap stack:
aload 1
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.statusCode:I
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.text:Ljava/nio/CharBuffer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
35: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
36: invokeinterface jdk.internal.net.http.websocket.MessageQueue$QueueCallback.onClose:(ILjava/nio/CharBuffer;Ljava/lang/Object;Ljava/util/function/BiConsumer;Ljava/util/concurrent/CompletableFuture;)Ljava/lang/Object;
37: areturn
38: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 39: aload 4
athrow
end local 4 40: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 41 0 this Ljdk/internal/net/http/websocket/MessageQueue;
0 41 1 callback Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback<TR;TE;>;
1 41 2 h Ljdk/internal/net/http/websocket/MessageQueue$Message;
4 41 3 type Ljdk/internal/net/http/websocket/MessageQueue$Type;
10 11 4 t Ljava/lang/Throwable;
16 17 4 t Ljava/lang/Throwable;
22 23 4 t Ljava/lang/Throwable;
33 34 4 t Ljava/lang/Throwable;
39 40 4 t Ljava/lang/Throwable;
Exception table:
from to target type
5 8 9 Class java.lang.Throwable
11 14 15 Class java.lang.Throwable
17 20 21 Class java.lang.Throwable
23 27 32 Class java.lang.Throwable
28 31 32 Class java.lang.Throwable
34 37 38 Class java.lang.Throwable
Exceptions:
throws java.lang.Throwable
Signature: <R:Ljava/lang/Object;E:Ljava/lang/Throwable;>(Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback<TR;TE;>;)TR;^TE;
MethodParameters:
Name Flags
callback
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.head:I
aaload
getfield jdk.internal.net.http.websocket.MessageQueue$Message.ready:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/net/http/websocket/MessageQueue;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.head:I
istore 1
start local 1 1: aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
iload 1
aaload
astore 2
start local 2 2: aload 2
getfield jdk.internal.net.http.websocket.MessageQueue$Message.ready:Z
ifne 4
3: new java.lang.InternalError
dup
ldc "Queue empty"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int jdk.internal.net.http.websocket.MessageQueue$Message
StackMap stack:
aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.type:Ljdk/internal/net/http/websocket/MessageQueue$Type;
5: aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.binarySupplier:Ljava/util/function/Supplier;
6: aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.binary:Ljava/nio/ByteBuffer;
7: aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.text:Ljava/nio/CharBuffer;
8: aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.attachment:Ljava/lang/Object;
9: aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.action:Ljava/util/function/BiConsumer;
10: aload 2
aconst_null
putfield jdk.internal.net.http.websocket.MessageQueue$Message.future:Ljava/util/concurrent/CompletableFuture;
11: aload 2
iconst_0
putfield jdk.internal.net.http.websocket.MessageQueue$Message.ready:Z
12: aload 0
iload 1
iconst_1
iadd
aload 0
getfield jdk.internal.net.http.websocket.MessageQueue.elements:[Ljdk/internal/net/http/websocket/MessageQueue$Message;
arraylength
iconst_1
isub
iand
putfield jdk.internal.net.http.websocket.MessageQueue.head:I
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/net/http/websocket/MessageQueue;
1 14 1 currentHead I
2 14 2 h Ljdk/internal/net/http/websocket/MessageQueue$Message;
static int[] $SWITCH_TABLE$jdk$internal$net$http$websocket$MessageQueue$Type();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic jdk.internal.net.http.websocket.MessageQueue.$SWITCH_TABLE$jdk$internal$net$http$websocket$MessageQueue$Type:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic jdk.internal.net.http.websocket.MessageQueue$Type.values:()[Ljdk/internal/net/http/websocket/MessageQueue$Type;
arraylength
newarray 10
astore 0
2: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.BINARY:Ljdk/internal/net/http/websocket/MessageQueue$Type;
invokevirtual jdk.internal.net.http.websocket.MessageQueue$Type.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.CLOSE:Ljdk/internal/net/http/websocket/MessageQueue$Type;
invokevirtual jdk.internal.net.http.websocket.MessageQueue$Type.ordinal:()I
iconst_5
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.PING:Ljdk/internal/net/http/websocket/MessageQueue$Type;
invokevirtual jdk.internal.net.http.websocket.MessageQueue$Type.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.PONG:Ljdk/internal/net/http/websocket/MessageQueue$Type;
invokevirtual jdk.internal.net.http.websocket.MessageQueue$Type.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic jdk.internal.net.http.websocket.MessageQueue$Type.TEXT:Ljdk/internal/net/http/websocket/MessageQueue$Type;
invokevirtual jdk.internal.net.http.websocket.MessageQueue$Type.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic jdk.internal.net.http.websocket.MessageQueue.$SWITCH_TABLE$jdk$internal$net$http$websocket$MessageQueue$Type:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
}
SourceFile: "MessageQueue.java"
NestMembers:
jdk.internal.net.http.websocket.MessageQueue$Message jdk.internal.net.http.websocket.MessageQueue$QueueCallback jdk.internal.net.http.websocket.MessageQueue$Type
InnerClasses:
private Message = jdk.internal.net.http.websocket.MessageQueue$Message of jdk.internal.net.http.websocket.MessageQueue
public abstract QueueCallback = jdk.internal.net.http.websocket.MessageQueue$QueueCallback of jdk.internal.net.http.websocket.MessageQueue
private final Type = jdk.internal.net.http.websocket.MessageQueue$Type of jdk.internal.net.http.websocket.MessageQueue