class sun.security.ssl.SSLSocketImpl$AppInputStream extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.ssl.SSLSocketImpl$AppInputStream
super_class: java.io.InputStream
{
private final byte[] oneByte;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.nio.ByteBuffer buffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private volatile boolean appDataIsAvailable;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
final sun.security.ssl.SSLSocketImpl this$0;
descriptor: Lsun/security/ssl/SSLSocketImpl;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.security.ssl.SSLSocketImpl);
descriptor: (Lsun/security/ssl/SSLSocketImpl;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_1
newarray 8
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
2: aload 0
iconst_0
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
3: aload 0
sipush 4096
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
MethodParameters:
Name Flags
this$0 final
public int available();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
ifeq 1
aload 0
invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.checkEOF:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
Exceptions:
throws java.io.IOException
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
iconst_0
iconst_1
invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.read:([BII)I
istore 1
start local 1 1: iload 1
ifgt 3
2: iconst_m1
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
iconst_0
baload
sipush 255
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
1 4 1 n I
Exceptions:
throws java.io.IOException
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, 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 target 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: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.checkEOF:()Z
ifeq 12
11: iconst_m1
ireturn
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifne 16
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.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
13: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifne 16
14: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isOutboundClosed:()Z
ifne 16
15: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
invokevirtual sun.security.ssl.SSLSocketImpl.ensureNegotiated:()V
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifeq 18
17: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifne 18
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifeq 19
18: StackMap locals:
StackMap stack:
new java.net.SocketException
dup
ldc "Connection or inbound has closed"
invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
monitorenter
20: aload 0
invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.available:()I
istore 5
start local 5 21: iload 5
ifle 26
22: iload 5
iload 3
invokestatic java.lang.Math.min:(II)I
istore 6
start local 6 23: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
aload 1
iload 2
iload 6
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
24: iload 6
aload 4
monitorexit
25: ireturn
end local 6 26: StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream int
StackMap stack:
aload 0
iconst_0
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
27: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
invokevirtual sun.security.ssl.SSLSocketImpl.readApplicationRecord:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
astore 6
start local 6 28: aload 6
ifnonnull 31
29: aload 4
monitorexit
30: iconst_m1
ireturn
31: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
aload 6
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
32: aload 6
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
pop
33: iload 3
aload 6
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic java.lang.Math.min:(II)I
istore 7
start local 7 34: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
aload 1
iload 2
iload 7
invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
pop
35: aload 0
iconst_1
putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
36: iload 7
37: aload 4
monitorexit
38: ireturn
end local 7 end local 6 39: StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int sun.security.ssl.SSLSocketImpl$AppInputStream int
StackMap stack: java.lang.Exception
astore 6
start local 6 40: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
aload 6
invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
41: aload 4
monitorexit
42: iconst_m1
ireturn
end local 6 end local 5 43: StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int sun.security.ssl.SSLSocketImpl$AppInputStream
StackMap stack: java.lang.Throwable
aload 4
monitorexit
44: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
0 45 1 b [B
0 45 2 off I
0 45 3 len I
21 43 5 remains I
23 26 6 howmany I
28 39 6 bb Ljava/nio/ByteBuffer;
34 39 7 volume I
40 43 6 e Ljava/lang/Exception;
Exception table:
from to target type
27 29 39 Class java.lang.Exception
31 37 39 Class java.lang.Exception
20 25 43 any
26 30 43 any
31 38 43 any
39 42 43 any
43 44 43 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
public synchronized long skip(long);
descriptor: (J)J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: sipush 256
newarray 8
astore 3
start local 3 1: lconst_0
lstore 4
start local 4 2: goto 9
3: StackMap locals: byte[] long
StackMap stack:
lload 1
aload 3
arraylength
i2l
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 6
start local 6 4: aload 0
aload 3
iconst_0
iload 6
invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.read:([BII)I
istore 7
start local 7 5: iload 7
ifgt 7
6: goto 10
7: StackMap locals: int int
StackMap stack:
lload 1
iload 7
i2l
lsub
lstore 1
8: lload 4
iload 7
i2l
ladd
lstore 4
end local 7 end local 6 9: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifgt 3
10: StackMap locals:
StackMap stack:
lload 4
lreturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
0 11 1 n J
1 11 3 skipArray [B
2 11 4 skipped J
4 9 6 len I
5 9 7 r I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
n
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 input 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$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
iconst_0
invokevirtual sun.security.ssl.SSLSocketImpl.shutdownInput:(Z)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 "input 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$AppInputStream;
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
private boolean checkEOF();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
invokevirtual sun.security.ssl.TransportContext.isInboundClosed:()Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isInputCloseNotified:Z
ifne 3
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isBroken:Z
ifeq 9
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.closeReason:Ljava/lang/Exception;
ifnonnull 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLException
dup
6: new java.lang.StringBuilder
dup
ldc "Connection has closed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.closeReason:Ljava/lang/Exception;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.closeReason:Ljava/lang/Exception;
8: invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
9: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
Exceptions:
throws java.io.IOException
private synchronized void deplete();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.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
1: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
instanceof sun.security.ssl.SSLSocketInputRecord
ifne 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
checkcast sun.security.ssl.SSLSocketInputRecord
4: astore 1
start local 1 5: aload 1
6: aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
getfield sun.security.ssl.SSLSocketImpl.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.isNegotiated:Z
ifeq 7
aload 0
getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
invokevirtual sun.security.ssl.SSLSocketImpl.getSoTimeout:()I
ifle 7
iconst_1
goto 8
StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream sun.security.ssl.SSLSocketInputRecord
StackMap stack: sun.security.ssl.SSLSocketInputRecord
7: iconst_0
8: StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream sun.security.ssl.SSLSocketInputRecord
StackMap stack: sun.security.ssl.SSLSocketInputRecord int
invokevirtual sun.security.ssl.SSLSocketInputRecord.deplete:(Z)V
9: goto 14
StackMap locals:
StackMap stack: java.io.IOException
10: astore 2
start local 2 11: getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 14
ldc "ssl"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 14
12: ldc "input stream close depletion failed"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
13: invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 2 end local 1 14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/ssl/SSLSocketImpl$AppInputStream;
5 14 1 socketInputRecord Lsun/security/ssl/SSLSocketInputRecord;
11 14 2 ioe Ljava/io/IOException;
Exception table:
from to target type
5 9 10 Class java.io.IOException
}
SourceFile: "SSLSocketImpl.java"
NestHost: sun.security.ssl.SSLSocketImpl
InnerClasses:
private AppInputStream = sun.security.ssl.SSLSocketImpl$AppInputStream of sun.security.ssl.SSLSocketImpl