public final class jdk.incubator.http.internal.websocket.WebSocketImpl implements jdk.incubator.http.WebSocket
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.incubator.http.internal.websocket.WebSocketImpl
super_class: java.lang.Object
{
private volatile boolean inputClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean outputClosed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.atomic.AtomicReference<jdk.incubator.http.internal.websocket.WebSocketImpl$State> state;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;>;
private jdk.incubator.http.WebSocket$MessagePart part;
descriptor: Ljdk/incubator/http/WebSocket$MessagePart;
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer binaryData;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.lang.CharSequence text;
descriptor: Ljava/lang/CharSequence;
flags: (0x0002) ACC_PRIVATE
private int statusCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String reason;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> error;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Ljava/lang/Throwable;>;
private final java.net.URI uri;
descriptor: Ljava/net/URI;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String subprotocol;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.WebSocket$Listener listener;
descriptor: Ljdk/incubator/http/WebSocket$Listener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicBoolean outstandingSend;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.internal.common.SequentialScheduler sendScheduler;
descriptor: Ljdk/incubator/http/internal/common/SequentialScheduler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Queue<jdk.incubator.http.internal.common.Pair<jdk.incubator.http.internal.websocket.OutgoingMessage, java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket>>> queue;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Ljdk/incubator/http/internal/common/Pair<Ljdk/incubator/http/internal/websocket/OutgoingMessage;Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;>;>;
private final jdk.incubator.http.internal.websocket.OutgoingMessage$Context context;
descriptor: Ljdk/incubator/http/internal/websocket/OutgoingMessage$Context;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.internal.websocket.Transmitter transmitter;
descriptor: Ljdk/incubator/http/internal/websocket/Transmitter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.internal.websocket.Receiver receiver;
descriptor: Ljdk/incubator/http/internal/websocket/Receiver;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.internal.common.SequentialScheduler receiveScheduler;
descriptor: Ljdk/incubator/http/internal/common/SequentialScheduler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.incubator.http.internal.common.Demand demand;
descriptor: Ljdk/incubator/http/internal/common/Demand;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> newInstanceAsync(jdk.incubator.http.internal.websocket.BuilderImpl);
descriptor: (Ljdk/incubator/http/internal/websocket/BuilderImpl;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokedynamic apply(Ljdk/incubator/http/internal/websocket/BuilderImpl;)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/incubator/http/internal/websocket/WebSocketImpl.lambda$0(Ljdk/incubator/http/internal/websocket/BuilderImpl;Ljdk/incubator/http/internal/websocket/OpeningHandshake$Result;)Ljdk/incubator/http/WebSocket; (6)
(Ljdk/incubator/http/internal/websocket/OpeningHandshake$Result;)Ljdk/incubator/http/WebSocket;
astore 1
start local 1 1: new jdk.incubator.http.internal.websocket.OpeningHandshake
dup
aload 0
invokespecial jdk.incubator.http.internal.websocket.OpeningHandshake.<init>:(Ljdk/incubator/http/internal/websocket/BuilderImpl;)V
astore 2
start local 2 2: goto 5
end local 2 StackMap locals: jdk.incubator.http.internal.websocket.BuilderImpl java.util.function.Function
StackMap stack: java.lang.Throwable
3: astore 3
start local 3 4: aload 3
invokestatic jdk.incubator.http.internal.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 3 start local 2 5: StackMap locals: jdk.incubator.http.internal.websocket.OpeningHandshake
StackMap stack:
aload 2
invokevirtual jdk.incubator.http.internal.websocket.OpeningHandshake.send:()Ljava/util/concurrent/CompletableFuture;
aload 1
invokevirtual java.util.concurrent.CompletableFuture.thenApply:(Ljava/util/function/Function;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 b Ljdk/incubator/http/internal/websocket/BuilderImpl;
1 6 1 newWebSocket Ljava/util/function/Function<Ljdk/incubator/http/internal/websocket/OpeningHandshake$Result;Ljdk/incubator/http/WebSocket;>;
2 3 2 h Ljdk/incubator/http/internal/websocket/OpeningHandshake;
5 6 2 h Ljdk/incubator/http/internal/websocket/OpeningHandshake;
4 5 3 e Ljava/lang/Throwable;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
Signature: (Ljdk/incubator/http/internal/websocket/BuilderImpl;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
b
static jdk.incubator.http.WebSocket newInstance(java.net.URI, java.lang.String, jdk.incubator.http.WebSocket$Listener, jdk.incubator.http.internal.websocket.TransportSupplier);
descriptor: (Ljava/net/URI;Ljava/lang/String;Ljdk/incubator/http/WebSocket$Listener;Ljdk/incubator/http/internal/websocket/TransportSupplier;)Ljdk/incubator/http/WebSocket;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new jdk.incubator.http.internal.websocket.WebSocketImpl
dup
aload 0
aload 1
aload 2
aload 3
invokespecial jdk.incubator.http.internal.websocket.WebSocketImpl.<init>:(Ljava/net/URI;Ljava/lang/String;Ljdk/incubator/http/WebSocket$Listener;Ljdk/incubator/http/internal/websocket/TransportSupplier;)V
astore 4
start local 4 1: aload 4
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.signalOpen:()V
2: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 uri Ljava/net/URI;
0 3 1 subprotocol Ljava/lang/String;
0 3 2 listener Ljdk/incubator/http/WebSocket$Listener;
0 3 3 transport Ljdk/incubator/http/internal/websocket/TransportSupplier;
1 3 4 ws Ljdk/incubator/http/internal/websocket/WebSocketImpl;
MethodParameters:
Name Flags
uri
subprotocol
listener
transport
private void <init>(java.net.URI, java.lang.String, jdk.incubator.http.WebSocket$Listener, jdk.incubator.http.internal.websocket.TransportSupplier);
descriptor: (Ljava/net/URI;Ljava/lang/String;Ljdk/incubator/http/WebSocket$Listener;Ljdk/incubator/http/internal/websocket/TransportSupplier;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, 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
new java.util.concurrent.atomic.AtomicReference
dup
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.OPEN:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.state:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.error:Ljava/util/concurrent/atomic/AtomicReference;
3: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.outstandingSend:Ljava/util/concurrent/atomic/AtomicBoolean;
4: aload 0
new jdk.incubator.http.internal.common.SequentialScheduler
dup
new jdk.incubator.http.internal.websocket.WebSocketImpl$SendTask
dup
aload 0
invokespecial jdk.incubator.http.internal.websocket.WebSocketImpl$SendTask.<init>:(Ljdk/incubator/http/internal/websocket/WebSocketImpl;)V
invokespecial jdk.incubator.http.internal.common.SequentialScheduler.<init>:(Ljdk/incubator/http/internal/common/SequentialScheduler$RestartableTask;)V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.sendScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
5: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.queue:Ljava/util/Queue;
6: aload 0
new jdk.incubator.http.internal.websocket.OutgoingMessage$Context
dup
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Context.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.context:Ljdk/incubator/http/internal/websocket/OutgoingMessage$Context;
7: aload 0
new jdk.incubator.http.internal.common.SequentialScheduler
dup
new jdk.incubator.http.internal.websocket.WebSocketImpl$ReceiveTask
dup
aload 0
invokespecial jdk.incubator.http.internal.websocket.WebSocketImpl$ReceiveTask.<init>:(Ljdk/incubator/http/internal/websocket/WebSocketImpl;)V
invokespecial jdk.incubator.http.internal.common.SequentialScheduler.<init>:(Ljdk/incubator/http/internal/common/SequentialScheduler$RestartableTask;)V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiveScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
8: aload 0
new jdk.incubator.http.internal.common.Demand
dup
invokespecial jdk.incubator.http.internal.common.Demand.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.demand:Ljdk/incubator/http/internal/common/Demand;
9: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.URI
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.uri:Ljava/net/URI;
10: aload 0
aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.subprotocol:Ljava/lang/String;
11: aload 0
aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.incubator.http.WebSocket$Listener
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.listener:Ljdk/incubator/http/WebSocket$Listener;
12: aload 0
aload 4
invokevirtual jdk.incubator.http.internal.websocket.TransportSupplier.transmitter:()Ljdk/incubator/http/internal/websocket/Transmitter;
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.transmitter:Ljdk/incubator/http/internal/websocket/Transmitter;
13: aload 0
aload 4
new jdk.incubator.http.internal.websocket.WebSocketImpl$SignallingMessageConsumer
dup
aload 0
invokespecial jdk.incubator.http.internal.websocket.WebSocketImpl$SignallingMessageConsumer.<init>:(Ljdk/incubator/http/internal/websocket/WebSocketImpl;)V
invokevirtual jdk.incubator.http.internal.websocket.TransportSupplier.receiver:(Ljdk/incubator/http/internal/websocket/MessageStreamConsumer;)Ljdk/incubator/http/internal/websocket/Receiver;
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiver:Ljdk/incubator/http/internal/websocket/Receiver;
14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 15 1 uri Ljava/net/URI;
0 15 2 subprotocol Ljava/lang/String;
0 15 3 listener Ljdk/incubator/http/WebSocket$Listener;
0 15 4 transport Ljdk/incubator/http/internal/websocket/TransportSupplier;
MethodParameters:
Name Flags
uri
subprotocol
listener
transport
public java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> sendText(java.lang.CharSequence, boolean);
descriptor: (Ljava/lang/CharSequence;Z)Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new jdk.incubator.http.internal.websocket.OutgoingMessage$Text
dup
aload 1
iload 2
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Text.<init>:(Ljava/lang/CharSequence;Z)V
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueueExclusively:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 1 1 message Ljava/lang/CharSequence;
0 1 2 isLast Z
Signature: (Ljava/lang/CharSequence;Z)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
message
isLast
public java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> sendBinary(java.nio.ByteBuffer, boolean);
descriptor: (Ljava/nio/ByteBuffer;Z)Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new jdk.incubator.http.internal.websocket.OutgoingMessage$Binary
dup
aload 1
iload 2
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Binary.<init>:(Ljava/nio/ByteBuffer;Z)V
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueueExclusively:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 1 1 message Ljava/nio/ByteBuffer;
0 1 2 isLast Z
Signature: (Ljava/nio/ByteBuffer;Z)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
message
isLast
public java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> sendPing(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new jdk.incubator.http.internal.websocket.OutgoingMessage$Ping
dup
aload 1
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Ping.<init>:(Ljava/nio/ByteBuffer;)V
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueue:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 1 1 message Ljava/nio/ByteBuffer;
Signature: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
message
public java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> sendPong(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new jdk.incubator.http.internal.websocket.OutgoingMessage$Pong
dup
aload 1
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Pong.<init>:(Ljava/nio/ByteBuffer;)V
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueue:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 1 1 message Ljava/nio/ByteBuffer;
Signature: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
message
public java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> sendClose(int, java.lang.String);
descriptor: (ILjava/lang/String;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
invokestatic jdk.incubator.http.internal.websocket.StatusCodes.isLegalToSendFromClient:(I)Z
ifne 3
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "statusCode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
2: invokestatic jdk.incubator.http.internal.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
3: StackMap locals:
StackMap stack:
new jdk.incubator.http.internal.websocket.OutgoingMessage$Close
dup
iload 1
aload 2
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Close.<init>:(ILjava/lang/CharSequence;)V
astore 3
start local 3 4: goto 7
end local 3 StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
5: astore 4
start local 4 6: aload 4
invokestatic jdk.incubator.http.internal.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 4 start local 3 7: StackMap locals: jdk.incubator.http.internal.websocket.OutgoingMessage$Close
StackMap stack:
aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.outputClosed:Z
8: aload 0
aload 3
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueueClose:(Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 9 1 statusCode I
0 9 2 reason Ljava/lang/String;
4 5 3 msg Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
7 9 3 msg Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
6 7 4 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
3 4 5 Class java.lang.IllegalArgumentException
Signature: (ILjava/lang/String;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
statusCode
reason
private java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> enqueueClose(jdk.incubator.http.internal.websocket.OutgoingMessage$Close);
descriptor: (Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueue:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
1: ldc 60
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.CompletableFuture.orTimeout:(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
2: aload 0
invokedynamic accept(Ljdk/incubator/http/internal/websocket/WebSocketImpl;)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/incubator/http/internal/websocket/WebSocketImpl.lambda$1(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V (7)
(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 4 1 m Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
Signature: (Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
m
private java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> enqueueExclusively(jdk.incubator.http.internal.websocket.OutgoingMessage);
descriptor: (Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.outstandingSend:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "Send pending"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
invokestatic jdk.incubator.http.internal.common.MinimalFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueue:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic accept(Ljdk/incubator/http/internal/websocket/WebSocketImpl;)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/incubator/http/internal/websocket/WebSocketImpl.lambda$2(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V (7)
(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 3 1 m Ljdk/incubator/http/internal/websocket/OutgoingMessage;
Signature: (Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
m
private java.util.concurrent.CompletableFuture<jdk.incubator.http.WebSocket> enqueue(jdk.incubator.http.internal.websocket.OutgoingMessage);
descriptor: (Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new jdk.incubator.http.internal.common.MinimalFuture
dup
invokespecial jdk.incubator.http.internal.common.MinimalFuture.<init>:()V
astore 2
start local 2 1: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.queue:Ljava/util/Queue;
aload 1
aload 2
invokestatic jdk.incubator.http.internal.common.Pair.pair:(Ljava/lang/Object;Ljava/lang/Object;)Ljdk/incubator/http/internal/common/Pair;
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
istore 3
start local 3 2: iload 3
ifne 4
3: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
4: StackMap locals: java.util.concurrent.CompletableFuture int
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.sendScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.runOrSchedule:()V
5: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 6 1 m Ljdk/incubator/http/internal/websocket/OutgoingMessage;
1 6 2 cf Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
2 6 3 added Z
Signature: (Ljdk/incubator/http/internal/websocket/OutgoingMessage;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
m
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.demand:Ljdk/incubator/http/internal/common/Demand;
lload 1
invokevirtual jdk.incubator.http.internal.common.Demand.increase:(J)Z
ifeq 2
1: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiveScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.runOrSchedule:()V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 3 1 n J
MethodParameters:
Name Flags
n
public java.lang.String getSubprotocol();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.subprotocol:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
public boolean isOutputClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.outputClosed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
public boolean isInputClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.inputClosed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
public void abort();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.inputClosed:Z
1: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.outputClosed:Z
2: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiveScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.stop:()V
3: aload 0
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.close:()V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokespecial java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: ldc "[uri="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.uri:Ljava/net/URI;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
2: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.subprotocol:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 3
new java.lang.StringBuilder
dup
ldc ", subprotocol="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.subprotocol:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 4
StackMap locals:
StackMap stack: java.lang.StringBuilder
3: ldc ""
StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl
StackMap stack: java.lang.StringBuilder java.lang.String
4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
private void signalOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiveScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.runOrSchedule:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
private void signalError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.inputClosed:Z
1: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.outputClosed:Z
2: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.error:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 3
aload 0
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.ERROR:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.trySetState:(Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;)Z
ifne 5
3: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.close:()V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 7 1 error Ljava/lang/Throwable;
MethodParameters:
Name Flags
error
private void close();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiver:Ljdk/incubator/http/internal/websocket/Receiver;
invokevirtual jdk.incubator.http.internal.websocket.Receiver.close:()V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.transmitter:Ljdk/incubator/http/internal/websocket/Transmitter;
invokevirtual jdk.incubator.http.internal.websocket.Transmitter.close:()V
4: aload 1
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.transmitter:Ljdk/incubator/http/internal/websocket/Transmitter;
invokevirtual jdk.incubator.http.internal.websocket.Transmitter.close:()V
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 1
start local 1 8: aload 1
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 1 9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
8 9 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 2 2 any
0 6 7 Class java.lang.Throwable
private void signalClose(int, java.lang.String);
descriptor: (ILjava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.inputClosed:Z
1: aload 0
iload 1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.statusCode:I
2: aload 0
aload 2
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.reason:Ljava/lang/String;
3: aload 0
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.CLOSE:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.trySetState:(Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;)Z
ifne 6
4: ldc "Close: {0}, ''{1}''"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
invokestatic jdk.incubator.http.internal.common.Log.logTrace:(Ljava/lang/String;[Ljava/lang/Object;)V
5: goto 10
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiver:Ljdk/incubator/http/internal/websocket/Receiver;
invokevirtual jdk.incubator.http.internal.websocket.Receiver.close:()V
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 3
start local 3 9: aload 3
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 3 10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 11 1 statusCode I
0 11 2 reason Ljava/lang/String;
9 10 3 t Ljava/lang/Throwable;
Exception table:
from to target type
6 7 8 Class java.lang.Throwable
MethodParameters:
Name Flags
statusCode
reason
private boolean trySetState(jdk.incubator.http.internal.websocket.WebSocketImpl$State);
descriptor: (Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.state:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.websocket.WebSocketImpl$State
astore 2
start local 2 1: aload 2
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.ERROR:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
if_acmpeq 2
aload 2
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.CLOSE:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
if_acmpne 3
2: StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl$State
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.state:Ljava/util/concurrent/atomic/AtomicReference;
aload 2
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 0
4: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiveScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.runOrSchedule:()V
5: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 6 1 newState Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
1 6 2 currentState Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
MethodParameters:
Name Flags
newState
private boolean tryChangeState(jdk.incubator.http.internal.websocket.WebSocketImpl$State, jdk.incubator.http.internal.websocket.WebSocketImpl$State);
descriptor: (Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.state:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndExchange:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.incubator.http.internal.websocket.WebSocketImpl$State
astore 3
start local 3 1: aload 3
aload 1
if_acmpne 4
2: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiveScheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.runOrSchedule:()V
3: iconst_1
ireturn
4: StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl$State
StackMap stack:
aload 3
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.ERROR:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
if_acmpeq 6
aload 3
getstatic jdk.incubator.http.internal.websocket.WebSocketImpl$State.CLOSE:Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
if_acmpeq 6
5: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 7 1 expectedState Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
0 7 2 newState Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
1 7 3 witness Ljdk/incubator/http/internal/websocket/WebSocketImpl$State;
MethodParameters:
Name Flags
expectedState
newState
private static jdk.incubator.http.WebSocket lambda$0(jdk.incubator.http.internal.websocket.BuilderImpl, jdk.incubator.http.internal.websocket.OpeningHandshake$Result);
descriptor: (Ljdk/incubator/http/internal/websocket/BuilderImpl;Ljdk/incubator/http/internal/websocket/OpeningHandshake$Result;)Ljdk/incubator/http/WebSocket;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=3, args_size=2
start local 1 0: aload 0
invokevirtual jdk.incubator.http.internal.websocket.BuilderImpl.getUri:()Ljava/net/URI;
1: aload 1
getfield jdk.incubator.http.internal.websocket.OpeningHandshake$Result.subprotocol:Ljava/lang/String;
2: aload 0
invokevirtual jdk.incubator.http.internal.websocket.BuilderImpl.getListener:()Ljdk/incubator/http/WebSocket$Listener;
3: aload 1
getfield jdk.incubator.http.internal.websocket.OpeningHandshake$Result.transport:Ljdk/incubator/http/internal/websocket/TransportSupplier;
4: invokestatic jdk.incubator.http.internal.websocket.WebSocketImpl.newInstance:(Ljava/net/URI;Ljava/lang/String;Ljdk/incubator/http/WebSocket$Listener;Ljdk/incubator/http/internal/websocket/TransportSupplier;)Ljdk/incubator/http/WebSocket;
astore 2
start local 2 5: aload 0
invokestatic java.lang.ref.Reference.reachabilityFence:(Ljava/lang/Object;)V
6: aload 2
areturn
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 7 1 r Ljdk/incubator/http/internal/websocket/OpeningHandshake$Result;
5 7 2 ws Ljdk/incubator/http/WebSocket;
private void lambda$1(jdk.incubator.http.WebSocket, java.lang.Throwable);
descriptor: (Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.transmitter:Ljdk/incubator/http/internal/websocket/Transmitter;
invokevirtual jdk.incubator.http.internal.websocket.Transmitter.close:()V
1: goto 4
StackMap locals:
StackMap stack: java.io.IOException
2: astore 3
start local 3 3: aload 3
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 3 4: StackMap locals:
StackMap stack:
aload 2
instanceof java.util.concurrent.TimeoutException
ifeq 9
5: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiver:Ljdk/incubator/http/internal/websocket/Receiver;
invokevirtual jdk.incubator.http.internal.websocket.Receiver.close:()V
6: goto 9
StackMap locals:
StackMap stack: java.io.IOException
7: astore 3
start local 3 8: aload 3
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 3 9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 10 1 r Ljdk/incubator/http/WebSocket;
0 10 2 error Ljava/lang/Throwable;
3 4 3 e Ljava/io/IOException;
8 9 3 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
5 6 7 Class java.io.IOException
private void lambda$2(jdk.incubator.http.WebSocket, java.lang.Throwable);
descriptor: (Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.outstandingSend:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 1 1 r Ljdk/incubator/http/WebSocket;
0 1 2 e Ljava/lang/Throwable;
}
SourceFile: "WebSocketImpl.java"
NestMembers:
jdk.incubator.http.internal.websocket.WebSocketImpl$ReceiveTask jdk.incubator.http.internal.websocket.WebSocketImpl$SendTask jdk.incubator.http.internal.websocket.WebSocketImpl$SignallingMessageConsumer jdk.incubator.http.internal.websocket.WebSocketImpl$State
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Listener = jdk.incubator.http.WebSocket$Listener of jdk.incubator.http.WebSocket
public final MessagePart = jdk.incubator.http.WebSocket$MessagePart of jdk.incubator.http.WebSocket
public abstract RestartableTask = jdk.incubator.http.internal.common.SequentialScheduler$RestartableTask of jdk.incubator.http.internal.common.SequentialScheduler
final Result = jdk.incubator.http.internal.websocket.OpeningHandshake$Result of jdk.incubator.http.internal.websocket.OpeningHandshake
final Binary = jdk.incubator.http.internal.websocket.OutgoingMessage$Binary of jdk.incubator.http.internal.websocket.OutgoingMessage
final Close = jdk.incubator.http.internal.websocket.OutgoingMessage$Close of jdk.incubator.http.internal.websocket.OutgoingMessage
public Context = jdk.incubator.http.internal.websocket.OutgoingMessage$Context of jdk.incubator.http.internal.websocket.OutgoingMessage
final Ping = jdk.incubator.http.internal.websocket.OutgoingMessage$Ping of jdk.incubator.http.internal.websocket.OutgoingMessage
final Pong = jdk.incubator.http.internal.websocket.OutgoingMessage$Pong of jdk.incubator.http.internal.websocket.OutgoingMessage
final Text = jdk.incubator.http.internal.websocket.OutgoingMessage$Text of jdk.incubator.http.internal.websocket.OutgoingMessage
private ReceiveTask = jdk.incubator.http.internal.websocket.WebSocketImpl$ReceiveTask of jdk.incubator.http.internal.websocket.WebSocketImpl
private SendTask = jdk.incubator.http.internal.websocket.WebSocketImpl$SendTask of jdk.incubator.http.internal.websocket.WebSocketImpl
private SignallingMessageConsumer = jdk.incubator.http.internal.websocket.WebSocketImpl$SignallingMessageConsumer of jdk.incubator.http.internal.websocket.WebSocketImpl
final State = jdk.incubator.http.internal.websocket.WebSocketImpl$State of jdk.incubator.http.internal.websocket.WebSocketImpl