final class jdk.incubator.http.internal.websocket.WebSocketImpl implements jdk.incubator.http.WebSocket
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.incubator.http.internal.websocket.WebSocketImpl
super_class: java.lang.Object
{
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.internal.websocket.RawChannel channel;
descriptor: Ljdk/incubator/http/internal/websocket/RawChannel;
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 boolean lastMethodInvoked;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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.websocket.CooperativeHandler sendHandler;
descriptor: Ljdk/incubator/http/internal/websocket/CooperativeHandler;
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 java.util.concurrent.atomic.AtomicBoolean closed;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.CompletableFuture<?> closeReceived;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<*>;
private final java.util.concurrent.CompletableFuture<?> closeSent;
descriptor: Ljava/util/concurrent/CompletableFuture;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CompletableFuture<*>;
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: (0x0008) 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$1(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.IllegalArgumentException
3: astore 3
start local 3 4: aload 3
invokestatic java.util.concurrent.CompletableFuture.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/IllegalArgumentException;
Exception table:
from to target type
1 2 3 Class java.lang.IllegalArgumentException
Signature: (Ljdk/incubator/http/internal/websocket/BuilderImpl;)Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
MethodParameters:
Name Flags
b
void <init>(java.net.URI, java.lang.String, jdk.incubator.http.internal.websocket.RawChannel, jdk.incubator.http.WebSocket$Listener);
descriptor: (Ljava/net/URI;Ljava/lang/String;Ljdk/incubator/http/internal/websocket/RawChannel;Ljdk/incubator/http/WebSocket$Listener;)V
flags: (0x0000)
Code:
stack=5, 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.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.outstandingSend:Ljava/util/concurrent/atomic/AtomicBoolean;
2: aload 0
3: new jdk.incubator.http.internal.websocket.CooperativeHandler
dup
aload 0
invokedynamic accept(Ljdk/incubator/http/internal/websocket/WebSocketImpl;)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/incubator/http/internal/websocket/WebSocketImpl.sendFirst(Ljava/lang/Runnable;)V (7)
(Ljava/lang/Runnable;)V
invokespecial jdk.incubator.http.internal.websocket.CooperativeHandler.<init>:(Ljava/util/function/Consumer;)V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.sendHandler:Ljdk/incubator/http/internal/websocket/CooperativeHandler;
4: 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;
5: 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;
6: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
7: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.lock:Ljava/lang/Object;
8: aload 0
new java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.closeReceived:Ljava/util/concurrent/CompletableFuture;
9: aload 0
new java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<init>:()V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.closeSent:Ljava/util/concurrent/CompletableFuture;
10: 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;
11: 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;
12: aload 0
aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.incubator.http.internal.websocket.RawChannel
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.channel:Ljdk/incubator/http/internal/websocket/RawChannel;
13: aload 0
aload 4
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;
14: aload 0
new jdk.incubator.http.internal.websocket.Transmitter
dup
aload 3
invokespecial jdk.incubator.http.internal.websocket.Transmitter.<init>:(Ljdk/incubator/http/internal/websocket/RawChannel;)V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.transmitter:Ljdk/incubator/http/internal/websocket/Transmitter;
15: aload 0
new jdk.incubator.http.internal.websocket.Receiver
dup
aload 0
aload 4
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.messageConsumerOf:(Ljdk/incubator/http/WebSocket$Listener;)Ljdk/incubator/http/internal/websocket/MessageStreamConsumer;
aload 3
invokespecial jdk.incubator.http.internal.websocket.Receiver.<init>:(Ljdk/incubator/http/internal/websocket/MessageStreamConsumer;Ljdk/incubator/http/internal/websocket/RawChannel;)V
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.receiver:Ljdk/incubator/http/internal/websocket/Receiver;
16: iconst_2
anewarray java.util.concurrent.CompletableFuture
dup
iconst_0
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closeReceived:Ljava/util/concurrent/CompletableFuture;
aastore
dup
iconst_1
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closeSent:Ljava/util/concurrent/CompletableFuture;
aastore
invokestatic java.util.concurrent.CompletableFuture.allOf:([Ljava/util/concurrent/CompletableFuture;)Ljava/util/concurrent/CompletableFuture;
17: aload 0
aload 3
invokedynamic accept(Ljdk/incubator/http/internal/websocket/WebSocketImpl;Ljdk/incubator/http/internal/websocket/RawChannel;)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/internal/websocket/RawChannel;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
18: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 19 1 uri Ljava/net/URI;
0 19 2 subprotocol Ljava/lang/String;
0 19 3 channel Ljdk/incubator/http/internal/websocket/RawChannel;
0 19 4 listener Ljdk/incubator/http/WebSocket$Listener;
MethodParameters:
Name Flags
uri
subprotocol
channel
listener
private void signalOpen();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.listener:Ljdk/incubator/http/WebSocket$Listener;
aload 0
invokeinterface jdk.incubator.http.WebSocket$Listener.onOpen:(Ljdk/incubator/http/WebSocket;)V
2: goto 5
StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl java.lang.Object
StackMap stack: java.lang.Exception
3: astore 2
start local 2 4: aload 0
aload 2
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.signalError:(Ljava/lang/Throwable;)V
end local 2 5: StackMap locals:
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
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;
4 5 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 2 3 Class java.lang.Exception
1 6 7 any
7 8 7 any
private void signalError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.lastMethodInvoked:Z
ifeq 4
2: aload 1
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
3: goto 10
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.lastMethodInvoked:Z
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: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.listener:Ljdk/incubator/http/WebSocket$Listener;
aload 0
aload 1
invokeinterface jdk.incubator.http.WebSocket$Listener.onError:(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
7: goto 10
StackMap locals:
StackMap stack: java.lang.Exception
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:
aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
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 error Ljava/lang/Throwable;
9 10 3 e Ljava/lang/Exception;
Exception table:
from to target type
6 7 8 Class java.lang.Exception
1 11 12 any
12 13 12 any
MethodParameters:
Name Flags
error
private void processClose(int, java.lang.String);
descriptor: (ILjava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 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: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.channel:Ljdk/incubator/http/internal/websocket/RawChannel;
invokeinterface jdk.incubator.http.internal.websocket.RawChannel.shutdownInput:()V
2: goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: astore 3
start local 3 4: aload 3
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 3 5: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closeReceived:Ljava/util/concurrent/CompletableFuture;
aconst_null
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: istore 3
start local 3 8: iload 3
ifeq 10
9: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
10: StackMap locals: int
StackMap stack:
iload 1
sipush 1005
if_icmpeq 11
iload 1
sipush 1006
if_icmpne 13
11: StackMap locals:
StackMap stack:
sipush 1000
istore 4
start local 4 12: goto 14
end local 4 13: StackMap locals:
StackMap stack:
iload 1
istore 4
start local 4 14: StackMap locals: int
StackMap stack:
aload 0
iload 1
aload 2
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.signalClose:(ILjava/lang/String;)Ljava/util/concurrent/CompletionStage;
astore 5
start local 5 15: aload 5
ifnonnull 17
16: aconst_null
invokestatic java.util.concurrent.CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
astore 5
17: StackMap locals: java.util.concurrent.CompletionStage
StackMap stack:
aload 5
aload 0
iload 4
invokedynamic accept(Ljdk/incubator/http/internal/websocket/WebSocketImpl;I)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$3(ILjava/lang/Object;Ljava/lang/Throwable;)V (7)
(Ljava/lang/Object;Ljava/lang/Throwable;)V
invokeinterface java.util.concurrent.CompletionStage.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletionStage;
pop
18: 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 19 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 19 1 statusCode I
0 19 2 reason Ljava/lang/String;
4 5 3 e Ljava/io/IOException;
8 19 3 alreadyCompleted Z
12 13 4 code I
14 19 4 code I
15 19 5 readyToClose Ljava/util/concurrent/CompletionStage<*>;
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
statusCode
reason
private java.util.concurrent.CompletionStage<?> signalClose(int, java.lang.String);
descriptor: (ILjava/lang/String;)Ljava/util/concurrent/CompletionStage;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.lastMethodInvoked:Z
ifeq 4
2: 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
3: goto 11
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_1
putfield jdk.incubator.http.internal.websocket.WebSocketImpl.lastMethodInvoked:Z
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: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.listener:Ljdk/incubator/http/WebSocket$Listener;
aload 0
iload 1
aload 2
invokeinterface jdk.incubator.http.WebSocket$Listener.onClose:(Ljdk/incubator/http/WebSocket;ILjava/lang/String;)Ljava/util/concurrent/CompletionStage;
7: aload 3
monitorexit
8: areturn
9: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 10: aload 4
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 4 11: StackMap locals:
StackMap stack:
aload 3
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 3
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 16 1 statusCode I
0 16 2 reason Ljava/lang/String;
10 11 4 e Ljava/lang/Exception;
Exception table:
from to target type
6 7 9 Class java.lang.Exception
1 8 13 any
9 12 13 any
13 14 13 any
Signature: (ILjava/lang/String;)Ljava/util/concurrent/CompletionStage<*>;
MethodParameters:
Name Flags
statusCode
reason
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.enqueueExclusively:(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.enqueueExclusively:(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 java.util.concurrent.CompletableFuture.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 java.util.concurrent.CompletableFuture.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
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 8 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 8 1 statusCode I
0 8 2 reason Ljava/lang/String;
4 5 3 msg Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
7 8 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=2, 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;
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$5(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 1 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 1 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.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "Closed"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
invokestatic java.util.concurrent.CompletableFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
2: StackMap locals:
StackMap stack:
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 4
3: new java.lang.IllegalStateException
dup
ldc "Outstanding send"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
invokestatic java.util.concurrent.CompletableFuture.failedFuture:(Ljava/lang/Throwable;)Ljava/util/concurrent/CompletableFuture;
areturn
4: 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$6(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 5 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 5 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 java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<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.sendHandler:Ljdk/incubator/http/internal/websocket/CooperativeHandler;
invokevirtual jdk.incubator.http.internal.websocket.CooperativeHandler.handle:()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
private void sendFirst(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.queue:Ljava/util/Queue;
invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
checkcast jdk.incubator.http.internal.common.Pair
astore 2
start local 2 1: aload 2
ifnonnull 4
2: aload 1
invokeinterface java.lang.Runnable.run:()V
3: return
4: StackMap locals: jdk.incubator.http.internal.common.Pair
StackMap stack:
aload 2
getfield jdk.incubator.http.internal.common.Pair.first:Ljava/lang/Object;
checkcast jdk.incubator.http.internal.websocket.OutgoingMessage
astore 3
start local 3 5: aload 2
getfield jdk.incubator.http.internal.common.Pair.second:Ljava/lang/Object;
checkcast java.util.concurrent.CompletableFuture
astore 4
start local 4 6: aload 3
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.context:Ljdk/incubator/http/internal/websocket/OutgoingMessage$Context;
invokevirtual jdk.incubator.http.internal.websocket.OutgoingMessage.contextualize:(Ljdk/incubator/http/internal/websocket/OutgoingMessage$Context;)V
7: aload 0
aload 4
aload 1
invokedynamic accept(Ljdk/incubator/http/internal/websocket/WebSocketImpl;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)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/incubator/http/internal/websocket/WebSocketImpl.lambda$7(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/lang/Exception;)V (7)
(Ljava/lang/Exception;)V
astore 5
start local 5 8: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.transmitter:Ljdk/incubator/http/internal/websocket/Transmitter;
aload 3
aload 5
invokevirtual jdk.incubator.http.internal.websocket.Transmitter.send:(Ljdk/incubator/http/internal/websocket/OutgoingMessage;Ljava/util/function/Consumer;)V
end local 5 9: goto 12
StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl java.lang.Runnable jdk.incubator.http.internal.common.Pair jdk.incubator.http.internal.websocket.OutgoingMessage java.util.concurrent.CompletableFuture
StackMap stack: java.lang.Exception
10: astore 5
start local 5 11: aload 4
aload 5
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 5 12: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 13 1 whenSent Ljava/lang/Runnable;
1 13 2 p Ljdk/incubator/http/internal/common/Pair<Ljdk/incubator/http/internal/websocket/OutgoingMessage;Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;>;
5 13 3 message Ljdk/incubator/http/internal/websocket/OutgoingMessage;
6 13 4 cf Ljava/util/concurrent/CompletableFuture<Ljdk/incubator/http/WebSocket;>;
8 9 5 h Ljava/util/function/Consumer<Ljava/lang/Exception;>;
11 12 5 t Ljava/lang/Exception;
Exception table:
from to target type
6 9 10 Class java.lang.Exception
MethodParameters:
Name Flags
whenSent
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.receiver:Ljdk/incubator/http/internal/websocket/Receiver;
lload 1
invokevirtual jdk.incubator.http.internal.websocket.Receiver.request:(J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 2 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 isClosed();
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.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()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=3, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.channel:Ljdk/incubator/http/internal/websocket/RawChannel;
invokeinterface jdk.incubator.http.internal.websocket.RawChannel.close:()V
1: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
4: aload 0
sipush 1006
ldc ""
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.signalClose:(ILjava/lang/String;)Ljava/util/concurrent/CompletionStage;
pop
5: aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
7: aload 0
sipush 1006
ldc ""
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.signalClose:(ILjava/lang/String;)Ljava/util/concurrent/CompletionStage;
pop
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.io.IOException
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 "["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 2
ldc "CLOSED"
goto 3
StackMap locals:
StackMap stack: java.lang.StringBuilder
2: ldc "OPEN"
StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl
StackMap stack: java.lang.StringBuilder java.lang.String
3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]: "
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;
4: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.subprotocol:Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 5
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 6
StackMap locals:
StackMap stack: java.lang.StringBuilder
5: ldc ""
StackMap locals: jdk.incubator.http.internal.websocket.WebSocketImpl
StackMap stack: java.lang.StringBuilder java.lang.String
6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
private jdk.incubator.http.internal.websocket.MessageStreamConsumer messageConsumerOf(jdk.incubator.http.WebSocket$Listener);
descriptor: (Ljdk/incubator/http/WebSocket$Listener;)Ljdk/incubator/http/internal/websocket/MessageStreamConsumer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new jdk.incubator.http.internal.websocket.WebSocketImpl$1
dup
aload 0
aload 1
invokespecial jdk.incubator.http.internal.websocket.WebSocketImpl$1.<init>:(Ljdk/incubator/http/internal/websocket/WebSocketImpl;Ljdk/incubator/http/WebSocket$Listener;)V
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 listener Ljdk/incubator/http/WebSocket$Listener;
MethodParameters:
Name Flags
listener
private static jdk.incubator.http.WebSocket lambda$1(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=6, locals=3, args_size=2
start local 1 0: new jdk.incubator.http.internal.websocket.WebSocketImpl
dup
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 1
getfield jdk.incubator.http.internal.websocket.OpeningHandshake$Result.channel:Ljdk/incubator/http/internal/websocket/RawChannel;
3: aload 0
invokevirtual jdk.incubator.http.internal.websocket.BuilderImpl.getListener:()Ljdk/incubator/http/WebSocket$Listener;
4: invokespecial jdk.incubator.http.internal.websocket.WebSocketImpl.<init>:(Ljava/net/URI;Ljava/lang/String;Ljdk/incubator/http/internal/websocket/RawChannel;Ljdk/incubator/http/WebSocket$Listener;)V
astore 2
start local 2 5: aload 2
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.signalOpen:()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/internal/websocket/WebSocketImpl;
private void lambda$2(jdk.incubator.http.internal.websocket.RawChannel, java.lang.Void, java.lang.Throwable);
descriptor: (Ljdk/incubator/http/internal/websocket/RawChannel;Ljava/lang/Void;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=6, args_size=4
start local 0 start local 2 start local 3 0: aload 1
invokeinterface jdk.incubator.http.internal.websocket.RawChannel.close:()V
1: goto 8
StackMap locals:
StackMap stack: java.io.IOException
2: astore 4
start local 4 3: aload 4
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
end local 4 4: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
goto 9
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
6: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
7: aload 5
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
9: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 10 2 result Ljava/lang/Void;
0 10 3 error Ljava/lang/Throwable;
3 4 4 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
0 4 5 any
private void lambda$3(int, java.lang.Object, java.lang.Throwable);
descriptor: (ILjava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
new jdk.incubator.http.internal.websocket.OutgoingMessage$Close
dup
iload 1
ldc ""
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage$Close.<init>:(ILjava/lang/CharSequence;)V
invokevirtual jdk.incubator.http.internal.websocket.WebSocketImpl.enqueueClose:(Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;)Ljava/util/concurrent/CompletableFuture;
1: invokedynamic accept()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$4(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V (6)
(Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
invokevirtual java.util.concurrent.CompletableFuture.whenComplete:(Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
pop
2: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 3 2 r Ljava/lang/Object;
0 3 3 error Ljava/lang/Throwable;
private void lambda$5(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=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.channel:Ljdk/incubator/http/internal/websocket/RawChannel;
invokeinterface jdk.incubator.http.internal.websocket.RawChannel.shutdownOutput:()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 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.closeSent:Ljava/util/concurrent/CompletableFuture;
aconst_null
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
ifeq 5
iconst_0
goto 6
StackMap locals:
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 3
start local 3 7: iload 3
ifeq 9
8: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
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;
7 9 3 alreadyCompleted Z
Exception table:
from to target type
0 1 2 Class java.io.IOException
private void lambda$6(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;
private void lambda$7(java.util.concurrent.CompletableFuture, java.lang.Runnable, java.lang.Exception);
descriptor: (Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;Ljava/lang/Exception;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 3 0: aload 3
ifnonnull 3
1: aload 1
aload 0
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
2: goto 4
3: StackMap locals:
StackMap stack:
aload 1
aload 3
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.incubator.http.internal.websocket.WebSocketImpl.sendHandler:Ljdk/incubator/http/internal/websocket/CooperativeHandler;
invokevirtual jdk.incubator.http.internal.websocket.CooperativeHandler.handle:()V
5: aload 2
invokeinterface java.lang.Runnable.run:()V
6: return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/incubator/http/internal/websocket/WebSocketImpl;
0 7 3 e Ljava/lang/Exception;
private static void lambda$4(jdk.incubator.http.WebSocket, java.lang.Throwable);
descriptor: (Ljdk/incubator/http/WebSocket;Ljava/lang/Throwable;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
1: aload 1
invokestatic jdk.incubator.http.internal.common.Log.logError:(Ljava/lang/Throwable;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 r1 Ljdk/incubator/http/WebSocket;
0 3 1 error1 Ljava/lang/Throwable;
}
SourceFile: "WebSocketImpl.java"
NestMembers:
jdk.incubator.http.internal.websocket.WebSocketImpl$1
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
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
jdk.incubator.http.internal.websocket.WebSocketImpl$1