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 916
            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 901
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.oneByte:[B
         2: .line 910
            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 917
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
         4: .line 918
            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 919
            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 928
            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 929
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 932
      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 940
            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 941
            iload 1 /* n */
            ifgt 3
         2: .line 942
            iconst_m1
            ireturn
         3: .line 945
      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 962
            aload 1 /* b */
            ifnonnull 2
         1: .line 963
            new java.lang.NullPointerException
            dup
            ldc "the target buffer is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 964
      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 965
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
         4: .line 966
            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 967
            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 966
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 965
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 968
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifne 10
         9: .line 969
            iconst_0
            ireturn
        10: .line 972
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.checkEOF:()Z
            ifeq 12
        11: .line 973
            iconst_m1
            ireturn
        12: .line 977
      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 978
            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 979
            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 980
            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 984
      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 985
            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 986
      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 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            ifeq 23
        20: .line 995
            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 996
            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 999
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        23: .line 1006
      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 1009
            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 1010
      StackMap locals:
      StackMap stack:
            new java.net.SocketException
            dup
        26: .line 1011
            ldc "Connection or inbound has closed"
        27: .line 1010
            invokespecial java.net.SocketException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 1015
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            ifeq 39
        29: .line 1016
            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 1017
            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 1060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 37
        32: .line 1061
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        33: .line 1063
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 9
        35: .line 1064
            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 1065
            aload 9
            athrow
        37: .line 1064
      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 1020
            iconst_m1
            ireturn
        39: .line 1023
      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 1024
            iload 4 /* remains */
            ifle 52
        41: .line 1025
            iload 4 /* remains */
            iload 3 /* len */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* howmany */
        start local 5 // int howmany
        42: .line 1026
            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 1028
            iload 5 /* howmany */
            istore 8
        44: .line 1060
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 50
        45: .line 1061
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        46: .line 1063
            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 1064
            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 1065
            aload 9
            athrow
        50: .line 1064
      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 1028
            iload 8
            ireturn
        end local 5 // int howmany
        52: .line 1031
      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 1033
            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 1034
            aload 5 /* bb */
            ifnonnull 63
        55: .line 1060
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 61
        56: .line 1061
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        57: .line 1063
            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 1064
            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 1065
            aload 9
            athrow
        61: .line 1064
      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 1035
            iconst_m1
            ireturn
        63: .line 1038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* bb */
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.buffer:Ljava/nio/ByteBuffer;
        64: .line 1041
            aload 5 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        65: .line 1042
            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 1043
            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 1044
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.appDataIsAvailable:Z
        68: .line 1046
            iload 6 /* volume */
            istore 8
        69: .line 1060
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 75
        70: .line 1061
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        71: .line 1063
            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 1064
            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 1065
            aload 9
            athrow
        75: .line 1064
      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 1046
            iload 8
            ireturn
        end local 6 // int volume
        end local 5 // java.nio.ByteBuffer bb
        77: .line 1047
      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 1049
            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 1060
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 85
        80: .line 1061
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        81: .line 1063
            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 1064
            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 1065
            aload 9
            athrow
        85: .line 1064
      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 1052
            iconst_m1
            ireturn
        end local 5 // java.lang.Exception e
        end local 4 // int remains
        87: .line 1054
      StackMap locals: sun.security.ssl.SSLSocketImpl$AppInputStream byte[] int int
      StackMap stack: java.lang.Throwable
            astore 7
        88: .line 1060
            aload 0 /* this */
            getfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
            ifeq 94
        89: .line 1061
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
        90: .line 1063
            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 1064
            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 1065
            aload 9
            athrow
        94: .line 1064
      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 1066
            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 1079
            sipush 256
            newarray 8
            astore 3 /* skipArray */
        start local 3 // byte[] skipArray
         1: .line 1080
            lconst_0
            lstore 4 /* skipped */
        start local 4 // long skipped
         2: .line 1082
            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 1084
            goto 10
         4: .line 1085
      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 1086
            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 1087
            iload 7 /* r */
            ifgt 8
         7: .line 1088
            goto 15
         8: .line 1090
      StackMap locals: int int
      StackMap stack:
            lload 1 /* n */
            iload 7 /* r */
            i2l
            lsub
            lstore 1 /* n */
         9: .line 1091
            lload 4 /* skipped */
            iload 7 /* r */
            i2l
            ladd
            lstore 4 /* skipped */
        end local 7 // int r
        end local 6 // int len
        10: .line 1084
      StackMap locals:
      StackMap stack:
            lload 1 /* n */
            lconst_0
            lcmp
            ifgt 4
        11: .line 1093
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 8
        13: .line 1094
            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 1095
            aload 8
            athrow
        15: .line 1094
      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 1097
            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 1102
            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 1103
            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 1107
      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 1108
            goto 7
      StackMap locals:
      StackMap stack: java.io.IOException
         4: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
         5: .line 1110
            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 1111
            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 1114
      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 1123
            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 1124
            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 1125
            iconst_1
            ireturn
         3: .line 1127
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
         4: .line 1128
            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 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;
         6: .line 1127
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
         7: .line 1131
      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 1132
            iconst_1
            ireturn
         9: .line 1133
      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 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;
            ifnonnull 12
        11: .line 1135
            iconst_1
            ireturn
        12: .line 1137
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
        13: .line 1138
            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 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;
        15: .line 1137
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        16: .line 1143
      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 1151
            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 1152
      StackMap locals:
      StackMap stack:
            return
         2: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.isClosing:Z
         3: .line 1156
            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 1158
            aload 0 /* this */
            invokevirtual sun.security.ssl.SSLSocketImpl$AppInputStream.readLockedDeplete:()V
         5: .line 1159
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1160
            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 1161
            aload 1
            athrow
         9: .line 1160
      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 1163
      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 1173
            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 1174
      StackMap locals:
      StackMap stack:
            return
         2: .line 1177
      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 1178
            return
         4: .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;
            checkcast sun.security.ssl.SSLSocketInputRecord
         5: .line 1181
            astore 1 /* socketInputRecord */
        start local 1 // sun.security.ssl.SSLSocketInputRecord socketInputRecord
         6: .line 1184
            aload 1 /* socketInputRecord */
         7: .line 1185
            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 1184
      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 1186
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Exception
        11: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
        12: .line 1187
            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 1189
            ldc "input stream close depletion failed"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* ex */
            aastore
        14: .line 1188
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 2 // java.lang.Exception ex
        15: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
            goto 20
        16: .line 1191
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        17: .line 1192
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
        18: .line 1193
            aload 3
            athrow
        19: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.ssl.SSLSocketImpl$AppInputStream.hasDepleted:Z
        20: .line 1194
      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