final class jdk.incubator.http.internal.websocket.OutgoingMessage$Close extends jdk.incubator.http.internal.websocket.OutgoingMessage
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.incubator.http.internal.websocket.OutgoingMessage$Close
super_class: jdk.incubator.http.internal.websocket.OutgoingMessage
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // jdk.incubator.http.internal.websocket.OutgoingMessage$Close this
0: .line 175
aload 0 /* this */
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage.<init>:()V
1: .line 176
aload 0 /* this */
getstatic jdk.incubator.http.internal.websocket.Frame$Opcode.CLOSE:Ljdk/incubator/http/internal/websocket/Frame$Opcode;
getstatic jdk.incubator.http.internal.common.Utils.EMPTY_BYTEBUFFER:Ljava/nio/ByteBuffer;
invokestatic jdk.incubator.http.internal.websocket.OutgoingMessage.getControlMessageBuffers:(Ljdk/incubator/http/internal/websocket/Frame$Opcode;Ljava/nio/ByteBuffer;)[Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.internal.websocket.OutgoingMessage$Close.frame:[Ljava/nio/ByteBuffer;
2: .line 177
return
end local 0 // jdk.incubator.http.internal.websocket.OutgoingMessage$Close this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
void <init>(int, java.lang.CharSequence);
descriptor: (ILjava/lang/CharSequence;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=3
start local 0 // jdk.incubator.http.internal.websocket.OutgoingMessage$Close this
start local 1 // int statusCode
start local 2 // java.lang.CharSequence reason
0: .line 179
aload 0 /* this */
invokespecial jdk.incubator.http.internal.websocket.OutgoingMessage.<init>:()V
1: .line 180
bipush 125
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
2: .line 181
iload 1 /* statusCode */
i2c
invokevirtual java.nio.ByteBuffer.putChar:(C)Ljava/nio/ByteBuffer;
3: .line 180
astore 3 /* payload */
start local 3 // java.nio.ByteBuffer payload
4: .line 182
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.nio.charset.Charset.newEncoder:()Ljava/nio/charset/CharsetEncoder;
5: .line 183
aload 2 /* reason */
invokestatic java.nio.CharBuffer.wrap:(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;
6: .line 184
aload 3 /* payload */
7: .line 185
iconst_1
8: .line 183
invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
9: .line 182
astore 4 /* result */
start local 4 // java.nio.charset.CoderResult result
10: .line 186
aload 4 /* result */
invokevirtual java.nio.charset.CoderResult.isOverflow:()Z
ifeq 12
11: .line 187
new java.lang.IllegalArgumentException
dup
ldc "Long reason"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: .line 188
StackMap locals: jdk.incubator.http.internal.websocket.OutgoingMessage$Close int java.lang.CharSequence java.nio.ByteBuffer java.nio.charset.CoderResult
StackMap stack:
aload 4 /* result */
invokevirtual java.nio.charset.CoderResult.isError:()Z
ifeq 19
13: .line 190
aload 4 /* result */
invokevirtual java.nio.charset.CoderResult.throwException:()V
14: .line 191
goto 19
StackMap locals:
StackMap stack: java.nio.charset.CharacterCodingException
15: astore 5 /* e */
start local 5 // java.nio.charset.CharacterCodingException e
16: .line 192
new java.lang.IllegalArgumentException
dup
17: .line 193
ldc "Malformed UTF-8 reason"
aload 5 /* e */
18: .line 192
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 // java.nio.charset.CharacterCodingException e
19: .line 196
StackMap locals:
StackMap stack:
aload 3 /* payload */
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
20: .line 197
aload 0 /* this */
getstatic jdk.incubator.http.internal.websocket.Frame$Opcode.CLOSE:Ljdk/incubator/http/internal/websocket/Frame$Opcode;
aload 3 /* payload */
invokestatic jdk.incubator.http.internal.websocket.OutgoingMessage.getControlMessageBuffers:(Ljdk/incubator/http/internal/websocket/Frame$Opcode;Ljava/nio/ByteBuffer;)[Ljava/nio/ByteBuffer;
putfield jdk.incubator.http.internal.websocket.OutgoingMessage$Close.frame:[Ljava/nio/ByteBuffer;
21: .line 198
return
end local 4 // java.nio.charset.CoderResult result
end local 3 // java.nio.ByteBuffer payload
end local 2 // java.lang.CharSequence reason
end local 1 // int statusCode
end local 0 // jdk.incubator.http.internal.websocket.OutgoingMessage$Close this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
0 22 1 statusCode I
0 22 2 reason Ljava/lang/CharSequence;
4 22 3 payload Ljava/nio/ByteBuffer;
10 22 4 result Ljava/nio/charset/CoderResult;
16 19 5 e Ljava/nio/charset/CharacterCodingException;
Exception table:
from to target type
13 14 15 Class java.nio.charset.CharacterCodingException
MethodParameters:
Name Flags
statusCode
reason
protected boolean contextualize(jdk.incubator.http.internal.websocket.OutgoingMessage$Context);
descriptor: (Ljdk/incubator/http/internal/websocket/OutgoingMessage$Context;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 // jdk.incubator.http.internal.websocket.OutgoingMessage$Close this
start local 1 // jdk.incubator.http.internal.websocket.OutgoingMessage$Context context
0: .line 202
aload 1 /* context */
invokevirtual jdk.incubator.http.internal.websocket.OutgoingMessage$Context.isCloseSent:()Z
ifeq 2
1: .line 203
iconst_0
ireturn
2: .line 205
StackMap locals:
StackMap stack:
aload 1 /* context */
invokevirtual jdk.incubator.http.internal.websocket.OutgoingMessage$Context.setCloseSent:()V
3: .line 206
iconst_1
ireturn
end local 1 // jdk.incubator.http.internal.websocket.OutgoingMessage$Context context
end local 0 // jdk.incubator.http.internal.websocket.OutgoingMessage$Close this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/incubator/http/internal/websocket/OutgoingMessage$Close;
0 4 1 context Ljdk/incubator/http/internal/websocket/OutgoingMessage$Context;
MethodParameters:
Name Flags
context
}
SourceFile: "OutgoingMessage.java"
NestHost: jdk.incubator.http.internal.websocket.OutgoingMessage
InnerClasses:
final Opcode = jdk.incubator.http.internal.websocket.Frame$Opcode of jdk.incubator.http.internal.websocket.Frame
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