final class sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec implements sun.security.ssl.SSLExtension$SSLExtensionSpec
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec
super_class: java.lang.Object
{
final int selectedVersion;
descriptor: I
flags: (0x0010) ACC_FINAL
private void <init>(sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec this
start local 1 // sun.security.ssl.ProtocolVersion selectedVersion
0: .line 248
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 249
aload 0 /* this */
aload 1 /* selectedVersion */
getfield sun.security.ssl.ProtocolVersion.id:I
putfield sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec.selectedVersion:I
2: .line 250
return
end local 1 // sun.security.ssl.ProtocolVersion selectedVersion
end local 0 // sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SupportedVersionsExtension$SHSupportedVersionsSpec;
0 3 1 selectedVersion Lsun/security/ssl/ProtocolVersion;
MethodParameters:
Name Flags
selectedVersion
private void <init>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 // sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec this
start local 1 // sun.security.ssl.HandshakeContext hc
start local 2 // java.nio.ByteBuffer m
0: .line 252
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 254
aload 2 /* m */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_2
if_icmpeq 7
2: .line 255
aload 1 /* hc */
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.DECODE_ERROR:Lsun/security/ssl/Alert;
3: .line 256
new javax.net.ssl.SSLProtocolException
dup
4: .line 257
ldc "Invalid supported_versions: insufficient data"
5: .line 256
invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
6: .line 255
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
7: .line 260
StackMap locals: sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec sun.security.ssl.HandshakeContext java.nio.ByteBuffer
StackMap stack:
aload 2 /* m */
invokevirtual java.nio.ByteBuffer.get:()B
istore 3 /* major */
start local 3 // byte major
8: .line 261
aload 2 /* m */
invokevirtual java.nio.ByteBuffer.get:()B
istore 4 /* minor */
start local 4 // byte minor
9: .line 262
aload 0 /* this */
iload 3 /* major */
sipush 255
iand
bipush 8
ishl
iload 4 /* minor */
sipush 255
iand
ior
putfield sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec.selectedVersion:I
10: .line 263
return
end local 4 // byte minor
end local 3 // byte major
end local 2 // java.nio.ByteBuffer m
end local 1 // sun.security.ssl.HandshakeContext hc
end local 0 // sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SupportedVersionsExtension$SHSupportedVersionsSpec;
0 11 1 hc Lsun/security/ssl/HandshakeContext;
0 11 2 m Ljava/nio/ByteBuffer;
8 11 3 major B
9 11 4 minor B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
hc
m
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 // sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec this
0: .line 267
new java.text.MessageFormat
dup
1: .line 268
ldc "\"selected version\": '['{0}']'"
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
2: .line 267
invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
astore 1 /* messageFormat */
start local 1 // java.text.MessageFormat messageFormat
3: .line 270
iconst_1
anewarray java.lang.Object
dup
iconst_0
4: .line 271
aload 0 /* this */
getfield sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec.selectedVersion:I
invokestatic sun.security.ssl.ProtocolVersion.nameOf:(I)Ljava/lang/String;
aastore
5: .line 270
astore 2 /* messageFields */
start local 2 // java.lang.Object[] messageFields
6: .line 273
aload 1 /* messageFormat */
aload 2 /* messageFields */
invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 2 // java.lang.Object[] messageFields
end local 1 // java.text.MessageFormat messageFormat
end local 0 // sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/SupportedVersionsExtension$SHSupportedVersionsSpec;
3 7 1 messageFormat Ljava/text/MessageFormat;
6 7 2 messageFields [Ljava/lang/Object;
}
SourceFile: "SupportedVersionsExtension.java"
NestHost: sun.security.ssl.SupportedVersionsExtension
InnerClasses:
abstract SSLExtensionSpec = sun.security.ssl.SSLExtension$SSLExtensionSpec of sun.security.ssl.SSLExtension
final SHSupportedVersionsSpec = sun.security.ssl.SupportedVersionsExtension$SHSupportedVersionsSpec of sun.security.ssl.SupportedVersionsExtension