final class sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment
super_class: java.lang.Object
{
private java.util.LinkedList<sun.security.ssl.SSLEngineOutputRecord$RecordMemo> handshakeMemos;
descriptor: Ljava/util/LinkedList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/LinkedList<Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;>;
final sun.security.ssl.SSLEngineOutputRecord this$0;
descriptor: Lsun/security/ssl/SSLEngineOutputRecord;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.security.ssl.SSLEngineOutputRecord);
descriptor: (Lsun/security/ssl/SSLEngineOutputRecord;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
MethodParameters:
Name Flags
this$0 final
void queueUpFragment(byte[], int, int);
descriptor: ([BII)V
flags: (0x0000)
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
dup
invokespecial sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.<init>:()V
astore 4
start local 4 1: aload 4
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.contentType:B
2: aload 4
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.majorVersion:B
3: aload 4
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.minorVersion:B
4: aload 4
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
5: aload 4
aload 1
iload 2
baload
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
6: aload 4
iconst_0
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
7: aload 4
iload 3
iconst_4
isub
newarray 8
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
8: aload 1
iload 2
iconst_4
iadd
aload 4
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
iconst_0
iload 3
iconst_4
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
aload 4
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
0 11 1 source [B
0 11 2 offset I
0 11 3 length I
1 11 4 memo Lsun/security/ssl/SSLEngineOutputRecord$HandshakeMemo;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
offset
length
void queueUpChangeCipherSpec();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: new sun.security.ssl.SSLEngineOutputRecord$RecordMemo
dup
invokespecial sun.security.ssl.SSLEngineOutputRecord$RecordMemo.<init>:()V
astore 1
start local 1 1: aload 1
getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
2: aload 1
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
3: aload 1
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
4: aload 1
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
5: aload 1
iconst_1
newarray 8
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
6: aload 1
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
iconst_0
iconst_1
bastore
7: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
aload 1
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
1 9 1 memo Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
void queueUpAlert(byte, byte);
descriptor: (BB)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.security.ssl.SSLEngineOutputRecord$RecordMemo
dup
invokespecial sun.security.ssl.SSLEngineOutputRecord$RecordMemo.<init>:()V
astore 3
start local 3 1: aload 3
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
2: aload 3
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.major:B
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
3: aload 3
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
getfield sun.security.ssl.ProtocolVersion.minor:B
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
4: aload 3
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
5: aload 3
iconst_2
newarray 8
putfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
6: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
iconst_0
iload 1
bastore
7: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
iconst_1
iload 2
bastore
8: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
aload 3
invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
pop
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
0 10 1 level B
0 10 2 description B
1 10 3 memo Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
MethodParameters:
Name Flags
level
description
sun.security.ssl.Ciphertext acquireCiphertext(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lsun/security/ssl/Ciphertext;
flags: (0x0000)
Code:
stack=8, locals=12, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.isEmpty:()Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLEngineOutputRecord$RecordMemo
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 6
5: aload 2
checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
astore 3
6: StackMap locals: sun.security.ssl.SSLEngineOutputRecord$RecordMemo sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.packetSize:I
ifle 12
7: sipush 16709
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.packetSize:I
invokestatic java.lang.Math.min:(II)I
istore 4
start local 4 8: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
9: iload 4
iconst_5
10: invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.calculateFragmentSize:(II)I
istore 4
11: goto 13
end local 4 12: StackMap locals:
StackMap stack:
sipush 16384
istore 4
start local 4 13: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.fragmentSize:I
ifle 15
14: iload 4
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.fragmentSize:I
invokestatic java.lang.Math.min:(II)I
istore 4
15: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 16: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 17: iload 5
iconst_5
iadd
18: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.getExplicitNonceSize:()I
19: iadd
istore 7
start local 7 20: aload 1
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
21: aload 3
ifnull 50
22: iload 4
istore 8
start local 8 23: goto 48
24: StackMap locals: sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment java.nio.ByteBuffer sun.security.ssl.SSLEngineOutputRecord$RecordMemo sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo int int int int int
StackMap stack:
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
arraylength
istore 9
start local 9 25: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
ifne 33
26: iload 8
iconst_4
if_icmpgt 28
27: goto 53
28: StackMap locals: int
StackMap stack:
aload 1
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
29: aload 1
iload 9
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
30: aload 1
iload 9
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
31: aload 1
iload 9
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
32: iinc 8 -4
33: StackMap locals:
StackMap stack:
iload 8
34: iload 9
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
isub
35: invokestatic java.lang.Math.min:(II)I
istore 10
start local 10 36: aload 1
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.fragment:[B
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
iload 10
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
37: aload 3
dup
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
iload 10
iadd
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
38: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
iload 9
if_icmpne 46
39: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
pop
40: iload 8
iload 10
if_icmple 46
41: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 46
42: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLEngineOutputRecord$RecordMemo
astore 11
start local 11 43: aload 11
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
getstatic sun.security.ssl.ContentType.HANDSHAKE:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 53
44: aload 11
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
if_acmpne 53
45: aload 11
checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
astore 3
end local 11 46: StackMap locals: int
StackMap stack:
iload 8
47: iload 10
isub
istore 8
end local 10 end local 9 48: StackMap locals:
StackMap stack:
iload 8
ifle 53
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 24
end local 8 49: goto 53
50: StackMap locals:
StackMap stack:
iload 4
aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
arraylength
invokestatic java.lang.Math.min:(II)I
istore 4
51: aload 1
aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.fragment:[B
iconst_0
iload 4
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
52: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
pop
53: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
54: aload 1
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
55: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 61
ldc "record"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 61
56: new java.lang.StringBuilder
dup
ldc "WRITE: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
57: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
invokestatic sun.security.ssl.ContentType.nameOf:(B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
58: ldc ", length = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
59: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
60: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
61: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
62: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
aload 1
63: iload 5
iload 6
iconst_5
64: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
65: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
66: invokestatic sun.security.ssl.ProtocolVersion.valueOf:(BB)Lsun/security/ssl/ProtocolVersion;
67: invokestatic sun.security.ssl.SSLEngineOutputRecord.encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
lstore 8
start local 8 68: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 73
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 73
69: aload 1
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 10
start local 10 70: aload 10
aload 10
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
71: aload 10
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
72: ldc "Raw write"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 10
aastore
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 10 73: StackMap locals: long
StackMap stack:
aload 1
iload 6
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
74: aload 3
ifnull 78
75: new sun.security.ssl.Ciphertext
dup
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.contentType:B
76: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
lload 8
77: invokespecial sun.security.ssl.Ciphertext.<init>:(BBJ)V
areturn
78: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
getfield sun.security.ssl.SSLEngineOutputRecord.isCloseWaiting:Z
ifeq 81
79: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 81
80: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
invokevirtual sun.security.ssl.SSLEngineOutputRecord.close:()V
81: StackMap locals:
StackMap stack:
new sun.security.ssl.Ciphertext
dup
aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
82: getstatic sun.security.ssl.SSLHandshake.NOT_APPLICABLE:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
lload 8
83: invokespecial sun.security.ssl.Ciphertext.<init>:(BBJ)V
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 84 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
0 84 1 dstBuf Ljava/nio/ByteBuffer;
3 84 2 memo Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
4 84 3 hsMemo Lsun/security/ssl/SSLEngineOutputRecord$HandshakeMemo;
8 12 4 fragLen I
13 84 4 fragLen I
16 84 5 dstPos I
17 84 6 dstLim I
20 84 7 dstContent I
23 49 8 remainingFragLen I
25 48 9 memoFragLen I
36 48 10 chipLen I
43 46 11 rm Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
68 84 8 recordSN J
70 73 10 temporary Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dstBuf
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
boolean hasAlert();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLEngineOutputRecord$RecordMemo
astore 1
start local 1 2: aload 1
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
getstatic sun.security.ssl.ContentType.ALERT:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
if_icmpne 4
3: iconst_1
ireturn
end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
2 4 1 memo Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
}
SourceFile: "SSLEngineOutputRecord.java"
NestHost: sun.security.ssl.SSLEngineOutputRecord
InnerClasses:
abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
final HandshakeFragment = sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment of sun.security.ssl.SSLEngineOutputRecord
private HandshakeMemo = sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo of sun.security.ssl.SSLEngineOutputRecord
private RecordMemo = sun.security.ssl.SSLEngineOutputRecord$RecordMemo of sun.security.ssl.SSLEngineOutputRecord