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

  private final java.util.concurrent.locks.ReentrantLock readLock;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean isClosing;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean hasDepleted;
    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=3, locals=2, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 921
            aload 0 /* this */
            aload 1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
            aload 0 /* this */
            invokespecial java.io.InputStream.<init>:()V
         1: .line 906
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
         2: .line 915
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
         3: .line 922
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
         4: .line 923
            aload 0 /* this */
            sipush 4096
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
         5: .line 924
            return
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     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 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 933
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
            ifeq 1
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.checkEOF:()Z
            ifeq 2
         1: .line 934
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      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 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 945
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
            iconst_0
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.read:([BII)I
            istore 1 /* n */
        start local 1 // int n
         1: .line 946
            iload 1 /* n */
            ifgt 3
         2: .line 947
            iconst_m1
            ireturn
         3: .line 950
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
            iconst_0
            baload
            sipush 255
            iand
            ireturn
        end local 1 // int n
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      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=10, args_size=4
        start local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 967
            aload 1 /* b */
            ifnonnull 2
         1: .line 968
            new java.lang.NullPointerException
            dup
            ldc "the target buffer is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 969
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iflt 3
            iload 3 /* len */
            iflt 3
            iload 3 /* len */
            aload 1 /* b */
            arraylength
            iload 2 /* off */
            isub
            if_icmple 8
         3: .line 970
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
         4: .line 971
            new java.lang.StringBuilder
            dup
            ldc "buffer length: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* b */
            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 /* off */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         5: .line 972
            ldc ", bytes to read:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 971
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 970
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 973
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifne 10
         9: .line 974
            iconst_0
            ireturn
        10: .line 977
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.checkEOF:()Z
            ifeq 12
        11: .line 978
            iconst_m1
            ireturn
        12: .line 982
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 /* this */
            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: .line 983
            aload 0 /* this */
            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: .line 984
            aload 0 /* this */
            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: .line 985
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
            iconst_1
            invokevirtual sun.security.ssl.SSLSocketImpl.ensureNegotiated:(Z)V
        16: .line 989
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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: .line 990
            aload 0 /* this */
            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 /* this */
            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: .line 991
      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: .line 999
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            ifeq 23
        20: .line 1000
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 22
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 22
        21: .line 1001
            ldc "The input stream has been depleted"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        22: .line 1004
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        23: .line 1011
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
        24: .line 1014
            aload 0 /* this */
            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 25
            aload 0 /* this */
            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 28
        25: .line 1015
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
        26: .line 1016
            ldc "Connection or inbound has closed"
        27: .line 1015
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 1020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            ifeq 39
        29: .line 1021
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 31
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 31
        30: .line 1022
            ldc "The input stream is closing"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        31: .line 1065
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 37
        32: .line 1066
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        33: .line 1068
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 9
        35: .line 1069
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        36: .line 1070
            aload 9
            athrow
        37: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        38: .line 1025
            iconst_m1
            ireturn
        39: .line 1028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.available:()I
            istore 4 /* remains */
        start local 4 // int remains
        40: .line 1029
            iload 4 /* remains */
            ifle 52
        41: .line 1030
            iload 4 /* remains */
            iload 3 /* len */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* howmany */
        start local 5 // int howmany
        42: .line 1031
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
            aload 1 /* b */
            iload 2 /* off */
            iload 5 /* howmany */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        43: .line 1033
            iload 5 /* howmany */
            istore 8
        44: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 50
        45: .line 1066
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        46: .line 1068
            goto 50
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int int int top top int
      StackMap stack: java.lang.Throwable
        47: astore 9
        48: .line 1069
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        49: .line 1070
            aload 9
            athrow
        50: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        51: .line 1033
            iload 8
            ireturn
        end local 5 // int howmany
        52: .line 1036
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int int
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
        53: .line 1038
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
            invokevirtual sun.security.ssl.SSLSocketImpl.readApplicationRecord:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            astore 5 /* bb */
        start local 5 // java.nio.ByteBuffer bb
        54: .line 1039
            aload 5 /* bb */
            ifnonnull 63
        55: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 61
        56: .line 1066
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        57: .line 1068
            goto 61
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int int java.nio.ByteBuffer
      StackMap stack: java.lang.Throwable
        58: astore 9
        59: .line 1069
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        60: .line 1070
            aload 9
            athrow
        61: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        62: .line 1040
            iconst_m1
            ireturn
        63: .line 1043
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* bb */
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
        64: .line 1046
            aload 5 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        65: .line 1047
            iload 3 /* len */
            aload 5 /* bb */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* volume */
        start local 6 // int volume
        66: .line 1048
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
            aload 1 /* b */
            iload 2 /* off */
            iload 6 /* volume */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        67: .line 1049
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
        68: .line 1051
            iload 6 /* volume */
            istore 8
        69: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 75
        70: .line 1066
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        71: .line 1068
            goto 75
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int int java.nio.ByteBuffer int top int
      StackMap stack: java.lang.Throwable
        72: astore 9
        73: .line 1069
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        74: .line 1070
            aload 9
            athrow
        75: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        76: .line 1051
            iload 8
            ireturn
        end local 6 // int volume
        end local 5 // java.nio.ByteBuffer bb
        77: .line 1052
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int int
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        78: .line 1054
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
            aload 5 /* e */
            invokevirtual sun.security.ssl.SSLSocketImpl.handleException:(Ljava/lang/Exception;)V
        79: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 85
        80: .line 1066
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        81: .line 1068
            goto 85
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int int java.lang.Exception
      StackMap stack: java.lang.Throwable
        82: astore 9
        83: .line 1069
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        84: .line 1070
            aload 9
            athrow
        85: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        86: .line 1057
            iconst_m1
            ireturn
        end local 5 // java.lang.Exception e
        end local 4 // int remains
        87: .line 1059
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int
      StackMap stack: java.lang.Throwable
            astore 7
        88: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 94
        89: .line 1066
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        90: .line 1068
            goto 94
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int top top top java.lang.Throwable
      StackMap stack: java.lang.Throwable
        91: astore 9
        92: .line 1069
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        93: .line 1070
            aload 9
            athrow
        94: .line 1069
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        95: .line 1071
            aload 7
            athrow
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   96     0     this  Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            0   96     1        b  [B
            0   96     2      off  I
            0   96     3      len  I
           40   87     4  remains  I
           42   52     5  howmany  I
           54   77     5       bb  Ljava/nio/ByteBuffer;
           66   77     6   volume  I
           78   87     5        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          31    34      34  any
          44    47      47  any
          55    58      58  any
          69    72      72  any
          53    55      77  Class java.lang.Exception
          63    69      77  Class java.lang.Exception
          79    82      82  any
          24    31      87  any
          39    44      87  any
          52    55      87  any
          63    69      87  any
          77    79      87  any
          88    91      91  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  public long skip(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
        start local 1 // long n
         0: .line 1084
            sipush 256
            newarray 8
            astore 3 /* skipArray */
        start local 3 // byte[] skipArray
         1: .line 1085
            lconst_0
            lstore 4 /* skipped */
        start local 4 // long skipped
         2: .line 1087
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
         3: .line 1089
            goto 10
         4: .line 1090
      StackMap locals: byte[] long
      StackMap stack:
            lload 1 /* n */
            aload 3 /* skipArray */
            arraylength
            i2l
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* len */
        start local 6 // int len
         5: .line 1091
            aload 0 /* this */
            aload 3 /* skipArray */
            iconst_0
            iload 6 /* len */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.read:([BII)I
            istore 7 /* r */
        start local 7 // int r
         6: .line 1092
            iload 7 /* r */
            ifgt 8
         7: .line 1093
            goto 15
         8: .line 1095
      StackMap locals: int int
      StackMap stack:
            lload 1 /* n */
            iload 7 /* r */
            i2l
            lsub
            lstore 1 /* n */
         9: .line 1096
            lload 4 /* skipped */
            iload 7 /* r */
            i2l
            ladd
            lstore 4 /* skipped */
        end local 7 // int r
        end local 6 // int len
        10: .line 1089
      StackMap locals:
      StackMap stack:
            lload 1 /* n */
            lconst_0
            lcmp
            ifgt 4
        11: .line 1098
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 8
        13: .line 1099
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        14: .line 1100
            aload 8
            athrow
        15: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        16: .line 1102
            lload 4 /* skipped */
            lreturn
        end local 4 // long skipped
        end local 3 // byte[] skipArray
        end local 1 // long n
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            0   17     1          n  J
            1   17     3  skipArray  [B
            2   17     4    skipped  J
            5   10     6        len  I
            6   10     7          r  I
      Exception table:
        from    to  target  type
           3    12      12  any
    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 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 1107
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 2
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 1108
            ldc "Closing input stream"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.finest:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 1112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
            invokevirtual sun.security.ssl.SSLSocketImpl.close:()V
         3: .line 1113
            goto 7
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         5: .line 1115
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 7
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 1116
            ldc "input stream close failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ioe */
            aastore
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 1 // java.io.IOException ioe
         7: .line 1119
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      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 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 1128
            aload 0 /* this */
            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 7
         1: .line 1129
            aload 0 /* this */
            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 3
         2: .line 1130
            iconst_1
            ireturn
         3: .line 1132
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
         4: .line 1133
            new java.lang.StringBuilder
            dup
            ldc "Connection has closed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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;
         5: .line 1134
            aload 0 /* this */
            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;
         6: .line 1132
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
         7: .line 1136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 9
         8: .line 1137
            iconst_1
            ireturn
         9: .line 1138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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
            ifeq 16
        10: .line 1139
            aload 0 /* this */
            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 12
        11: .line 1140
            iconst_1
            ireturn
        12: .line 1142
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
        13: .line 1143
            new java.lang.StringBuilder
            dup
            ldc "Connection has closed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            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;
        14: .line 1144
            aload 0 /* this */
            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;
        15: .line 1142
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        16: .line 1148
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lsun/security/ssl/SSLSocketImpl$AppInputStream;
    Exceptions:
      throws java.io.IOException

  private void deplete();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 1156
            aload 0 /* this */
            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 1
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 2
         1: .line 1157
      StackMap locals:
      StackMap stack:
            return
         2: .line 1160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
         3: .line 1161
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
            ifeq 10
         4: .line 1163
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
         5: .line 1164
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1165
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
         8: .line 1166
            aload 1
            athrow
         9: .line 1165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.readLock:Ljava/util/concurrent/locks/ReentrantLock;
            invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
        10: .line 1168
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/ssl/SSLSocketImpl$AppInputStream;
      Exception table:
        from    to  target  type
           4     6       6  any

  private void readLockedDeplete();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
         0: .line 1178
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            ifne 1
            aload 0 /* this */
            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: .line 1179
      StackMap locals:
      StackMap stack:
            return
         2: .line 1182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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 4
         3: .line 1183
            return
         4: .line 1187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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
         5: .line 1186
            astore 1 /* socketInputRecord */
        start local 1 // sun.security.ssl.SSLSocketInputRecord socketInputRecord
         6: .line 1189
            aload 1 /* socketInputRecord */
         7: .line 1190
            aload 0 /* this */
            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 8
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.this$0:Lsun/security/ssl/SSLSocketImpl;
            invokevirtual sun.security.ssl.SSLSocketImpl.getSoTimeout:()I
            ifle 8
            iconst_1
            goto 9
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream sun.security.ssl.SSLSocketInputRecord
      StackMap stack: sun.security.ssl.SSLSocketInputRecord
         8: iconst_0
         9: .line 1189
      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
        10: .line 1191
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        11: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
        12: .line 1192
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 15
            ldc "ssl"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 1194
            ldc "input stream close depletion failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* ex */
            aastore
        14: .line 1193
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 2 // java.lang.Exception ex
        15: .line 1197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            goto 20
        16: .line 1196
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        17: .line 1197
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
        18: .line 1198
            aload 3
            athrow
        19: .line 1197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
        20: .line 1199
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.security.ssl.SSLSocketInputRecord socketInputRecord
        end local 0 // sun.security.ssl.SSLSocketImpl$AppInputStream this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lsun/security/ssl/SSLSocketImpl$AppInputStream;
            6   21     1  socketInputRecord  Lsun/security/ssl/SSLSocketInputRecord;
           12   15     2                 ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6    10      11  Class java.lang.Exception
           6    15      16  any
}
SourceFile: "SSLSocketImpl.java"
NestHost: sun.security.ssl.SSLSocketImpl
InnerClasses:
  private AppInputStream = sun.security.ssl.SSLSocketImpl$AppInputStream of sun.security.ssl.SSLSocketImpl