class sun.security.ssl.SSLSocketImpl$AppOutputStream extends java.io.OutputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.ssl.SSLSocketImpl$AppOutputStream
super_class: java.io.OutputStream
{
private final byte[] oneByte;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.security.ssl.SSLSocketImpl this$0;
descriptor: Lsun/security/ssl/SSLSocketImpl;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(sun.security.ssl.SSLSocketImpl);
descriptor: (Lsun/security/ssl/SSLSocketImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
aload 0
invokespecial java.io.OutputStream.<init>:()V
1: aload 0
iconst_1
newarray 8
putfield sun.security.ssl.SSLSocketImpl$AppOutputStream.oneByte:[B
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
MethodParameters:
Name Flags
this$0 final
public void write(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.oneByte:[B
iconst_0
iload 1
i2b
bastore
1: aload 0
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.oneByte:[B
iconst_0
iconst_1
invokevirtual sun.security.ssl.SSLSocketImpl$AppOutputStream.write:([BII)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
0 3 1 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
i
public void write(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "the source buffer is null"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
iflt 3
iload 3
iflt 3
iload 3
aload 1
arraylength
iload 2
isub
if_icmple 8
3: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
4: new java.lang.StringBuilder
dup
ldc "buffer length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", offset; "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
5: ldc ", bytes to read:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
iload 3
ifne 10
9: return
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifne 14
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 14
11: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifne 14
12: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifne 14
13: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
invokevirtual sun.security.ssl.SSLSocketImpl.ensureNegotiated:()V
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifeq 16
15: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 16
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifeq 17
16: StackMap locals:
StackMap stack:
new java.net.SocketException
dup
ldc "Connection or outbound has closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
aload 1
iload 2
iload 3
invokevirtual sun.security.ssl.OutputRecord.deliver:([BII)V
18: goto 23
StackMap locals:
StackMap stack: javax.net.ssl.SSLHandshakeException
19: astore 4
start local 4 20: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
aload 4
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 4 21: StackMap locals:
StackMap stack: java.io.IOException
astore 4
start local 4 22: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
aload 4
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/Throwable;)Ljavax/net/ssl/SSLException;
athrow
end local 4 23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
invokevirtual sun.security.ssl.OutputRecord.seqNumIsHuge:()Z
ifne 25
24: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
getfield sun.security.ssl.OutputRecord.writeCipher:Lsun/security/ssl/SSLCipher$SSLWriteCipher;
invokevirtual sun.security.ssl.SSLCipher$SSLWriteCipher.atKeyLimit:()Z
ifeq 26
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
invokevirtual sun.security.ssl.SSLSocketImpl.tryKeyUpdate:()V
26: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
0 27 1 b [B
0 27 2 off I
0 27 3 len I
20 21 4 she Ljavax/net/ssl/SSLHandshakeException;
22 23 4 e Ljava/io/IOException;
Exception table:
from to target type
17 18 19 Class javax.net.ssl.SSLHandshakeException
17 18 21 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 2
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 2
1: ldc "Closing output stream"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppOutputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
invokevirtual sun.security.ssl.SSLSocketImpl.shutdownOutput:()V
3: goto 7
StackMap locals:
StackMap stack: java.io.IOException
4: astore 1
start local 1 5: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 7
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 7
6: ldc "output stream close failed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/ssl/SSLSocketImpl$AppOutputStream;
5 7 1 ioe Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
Exceptions:
throws java.io.IOException
}
SourceFile: "SSLSocketImpl.java"
NestHost: sun.security.ssl.SSLSocketImpl
InnerClasses:
abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
private AppOutputStream = sun.security.ssl.SSLSocketImpl$AppOutputStream of sun.security.ssl.SSLSocketImpl