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;
iload 4
invokevirtual sun.security.ssl.SSLEngineOutputRecord.calculateFragmentSize:(I)I
istore 4
14: aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 5
start local 5 15: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 6
start local 6 16: iload 5
iconst_5
iadd
17: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.getExplicitNonceSize:()I
18: iadd
istore 7
start local 7 19: aload 1
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
20: aload 3
ifnull 49
21: iload 4
istore 8
start local 8 22: goto 47
23: 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 24: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
ifne 32
25: iload 8
iconst_4
if_icmpgt 27
26: goto 52
27: 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
28: aload 1
iload 9
bipush 16
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
29: aload 1
iload 9
bipush 8
ishr
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
30: aload 1
iload 9
sipush 255
iand
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
31: iinc 8 -4
32: StackMap locals:
StackMap stack:
iload 8
33: iload 9
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
isub
34: invokestatic java.lang.Math.min:(II)I
istore 10
start local 10 35: 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
36: aload 3
dup
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
iload 10
iadd
putfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
37: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.acquireOffset:I
iload 9
if_icmpne 45
38: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
pop
39: iload 8
iload 10
if_icmple 45
40: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifne 45
41: 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 42: 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 52
43: 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 52
44: aload 11
checkcast sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo
astore 3
end local 11 45: StackMap locals: int
StackMap stack:
iload 8
46: iload 10
isub
istore 8
end local 10 end local 9 47: StackMap locals:
StackMap stack:
iload 8
ifle 52
aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.isEmpty:()Z
ifeq 23
end local 8 48: goto 52
49: 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
50: 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
51: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.handshakeMemos:Ljava/util/LinkedList;
invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
pop
52: StackMap locals:
StackMap stack:
aload 1
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
53: aload 1
iload 7
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
54: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 60
ldc "record"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 60
55: 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;
56: 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;
57: 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;
58: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
59: invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
60: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.encodeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
61: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
aload 1
62: iload 5
iload 6
iconst_5
63: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.majorVersion:B
64: aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.minorVersion:B
65: invokestatic sun.security.ssl.ProtocolVersion.valueOf:(BB)Lsun/security/ssl/ProtocolVersion;
66: invokestatic sun.security.ssl.SSLEngineOutputRecord.encrypt:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;BLjava/nio/ByteBuffer;IIILsun/security/ssl/ProtocolVersion;)J
lstore 8
start local 8 67: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 72
ldc "packet"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 72
68: aload 1
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 10
start local 10 69: aload 10
aload 10
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
70: aload 10
iload 5
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
71: 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 72: StackMap locals: long
StackMap stack:
aload 1
iload 6
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
73: aload 3
ifnull 77
74: new sun.security.ssl.Ciphertext
dup
aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.contentType:B
75: aload 3
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeMemo.handshakeType:B
lload 8
76: invokespecial sun.security.ssl.Ciphertext.<init>:(BBJ)V
areturn
77: 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 80
78: 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 80
79: aload 0
getfield sun.security.ssl.SSLEngineOutputRecord$HandshakeFragment.this$0:Lsun/security/ssl/SSLEngineOutputRecord;
invokevirtual sun.security.ssl.SSLEngineOutputRecord.close:()V
80: StackMap locals:
StackMap stack:
new sun.security.ssl.Ciphertext
dup
aload 2
getfield sun.security.ssl.SSLEngineOutputRecord$RecordMemo.contentType:B
81: getstatic sun.security.ssl.SSLHandshake.NOT_APPLICABLE:Lsun/security/ssl/SSLHandshake;
getfield sun.security.ssl.SSLHandshake.id:B
lload 8
82: 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 83 0 this Lsun/security/ssl/SSLEngineOutputRecord$HandshakeFragment;
0 83 1 dstBuf Ljava/nio/ByteBuffer;
3 83 2 memo Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
4 83 3 hsMemo Lsun/security/ssl/SSLEngineOutputRecord$HandshakeMemo;
8 12 4 fragLen I
13 83 4 fragLen I
15 83 5 dstPos I
16 83 6 dstLim I
19 83 7 dstContent I
22 48 8 remainingFragLen I
24 47 9 memoFragLen I
35 47 10 chipLen I
42 45 11 rm Lsun/security/ssl/SSLEngineOutputRecord$RecordMemo;
67 83 8 recordSN J
69 72 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