public class sun.nio.ch.FileChannelImpl extends java.nio.channels.FileChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.nio.ch.FileChannelImpl
  super_class: java.nio.channels.FileChannel
{
  private static final long allocationGranularity;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.misc.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Ljdk/internal/misc/JavaIOFileDescriptorAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final sun.nio.ch.FileDispatcher nd;
    descriptor: Lsun/nio/ch/FileDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.FileDescriptor fd;
    descriptor: Ljava/io/FileDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean writable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean readable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object parent;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String path;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final sun.nio.ch.NativeThreadSet threads;
    descriptor: Lsun/nio/ch/NativeThreadSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object positionLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private static volatile boolean transferSupported;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile boolean pipeSupported;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static volatile boolean fileSupported;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final long MAPPED_TRANSFER_SIZE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8388608

  private static final int TRANSFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final int MAP_RO;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int MAP_RW;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int MAP_PV;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private volatile sun.nio.ch.FileLockTable fileLockTable;
    descriptor: Lsun/nio/ch/FileLockTable;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static boolean isSharedFileLockTable;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static volatile boolean propertyChecked;
    descriptor: Z
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 52
            ldc Lsun/nio/ch/FileChannelImpl;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
         3: .line 60
            invokestatic jdk.internal.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/misc/JavaIOFileDescriptorAccess;
         4: .line 59
            putstatic sun.nio.ch.FileChannelImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
         5: .line 407
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.transferSupported:Z
         6: .line 412
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.pipeSupported:Z
         7: .line 417
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.fileSupported:Z
         8: .line 1237
            invokestatic sun.nio.ch.IOUtil.load:()V
         9: .line 1238
            invokestatic sun.nio.ch.FileChannelImpl.initIDs:()J
            putstatic sun.nio.ch.FileChannelImpl.allocationGranularity:J
        10: .line 1239
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.io.FileDescriptor, java.lang.String, boolean, boolean, java.lang.Object);
    descriptor: (Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // java.lang.String path
        start local 3 // boolean readable
        start local 4 // boolean writable
        start local 5 // java.lang.Object parent
         0: .line 88
            aload 0 /* this */
            invokespecial java.nio.channels.FileChannel.<init>:()V
         1: .line 80
            aload 0 /* this */
            new sun.nio.ch.NativeThreadSet
            dup
            iconst_2
            invokespecial sun.nio.ch.NativeThreadSet.<init>:(I)V
            putfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
         2: .line 83
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
         3: .line 91
            aload 0 /* this */
            aload 1 /* fd */
            putfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
         4: .line 92
            aload 0 /* this */
            iload 3 /* readable */
            putfield sun.nio.ch.FileChannelImpl.readable:Z
         5: .line 93
            aload 0 /* this */
            iload 4 /* writable */
            putfield sun.nio.ch.FileChannelImpl.writable:Z
         6: .line 94
            aload 0 /* this */
            aload 5 /* parent */
            putfield sun.nio.ch.FileChannelImpl.parent:Ljava/lang/Object;
         7: .line 95
            aload 0 /* this */
            aload 2 /* path */
            putfield sun.nio.ch.FileChannelImpl.path:Ljava/lang/String;
         8: .line 96
            aload 0 /* this */
            new sun.nio.ch.FileDispatcherImpl
            dup
            invokespecial sun.nio.ch.FileDispatcherImpl.<init>:()V
            putfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
         9: .line 97
            return
        end local 5 // java.lang.Object parent
        end local 4 // boolean writable
        end local 3 // boolean readable
        end local 2 // java.lang.String path
        end local 1 // java.io.FileDescriptor fd
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lsun/nio/ch/FileChannelImpl;
            0   10     1        fd  Ljava/io/FileDescriptor;
            0   10     2      path  Ljava/lang/String;
            0   10     3  readable  Z
            0   10     4  writable  Z
            0   10     5    parent  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      fd        
      path      
      readable  
      writable  
      parent    

  public static java.nio.channels.FileChannel open(java.io.FileDescriptor, java.lang.String, boolean, boolean, java.lang.Object);
    descriptor: (Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)Ljava/nio/channels/FileChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.io.FileDescriptor fd
        start local 1 // java.lang.String path
        start local 2 // boolean readable
        start local 3 // boolean writable
        start local 4 // java.lang.Object parent
         0: .line 105
            new sun.nio.ch.FileChannelImpl
            dup
            aload 0 /* fd */
            aload 1 /* path */
            iload 2 /* readable */
            iload 3 /* writable */
            aload 4 /* parent */
            invokespecial sun.nio.ch.FileChannelImpl.<init>:(Ljava/io/FileDescriptor;Ljava/lang/String;ZZLjava/lang/Object;)V
            areturn
        end local 4 // java.lang.Object parent
        end local 3 // boolean writable
        end local 2 // boolean readable
        end local 1 // java.lang.String path
        end local 0 // java.io.FileDescriptor fd
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        fd  Ljava/io/FileDescriptor;
            0    1     1      path  Ljava/lang/String;
            0    1     2  readable  Z
            0    1     3  writable  Z
            0    1     4    parent  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      fd        
      path      
      readable  
      writable  
      parent    

  private void ensureOpen();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 109
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 2
         1: .line 110
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         2: .line 111
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/ch/FileChannelImpl;
    Exceptions:
      throws java.io.IOException

  public void setUninterruptible();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 114
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.FileChannelImpl.uninterruptible:Z
         1: .line 115
            return
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/FileChannelImpl;

  protected void implCloseChannel();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 120
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual java.io.FileDescriptor.valid:()Z
            ifne 2
         1: .line 121
            return
         2: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnull 14
         3: .line 125
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            invokevirtual sun.nio.ch.FileLockTable.removeAll:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 13
      StackMap locals: sun.nio.ch.FileChannelImpl top java.util.Iterator
      StackMap stack:
         4: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.channels.FileLock
            astore 1 /* fl */
        start local 1 // java.nio.channels.FileLock fl
         5: .line 126
            aload 1 /* fl */
            dup
            astore 3
            monitorenter
         6: .line 127
            aload 1 /* fl */
            invokevirtual java.nio.channels.FileLock.isValid:()Z
            ifeq 9
         7: .line 128
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* fl */
            invokevirtual java.nio.channels.FileLock.position:()J
            aload 1 /* fl */
            invokevirtual java.nio.channels.FileLock.size:()J
            invokevirtual sun.nio.ch.FileDispatcher.release:(Ljava/io/FileDescriptor;JJ)V
         8: .line 129
            aload 1 /* fl */
            checkcast sun.nio.ch.FileLockImpl
            invokevirtual sun.nio.ch.FileLockImpl.invalidate:()V
         9: .line 126
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileLock java.util.Iterator java.nio.channels.FileLock
      StackMap stack:
            aload 3
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 3
            monitorexit
        12: athrow
        end local 1 // java.nio.channels.FileLock fl
        13: .line 125
      StackMap locals: sun.nio.ch.FileChannelImpl top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 136
      StackMap locals: sun.nio.ch.FileChannelImpl
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.signalAndWait:()V
        15: .line 138
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.parent:Ljava/lang/Object;
            ifnull 18
        16: .line 145
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.parent:Ljava/lang/Object;
            checkcast java.io.Closeable
            invokeinterface java.io.Closeable.close:()V
        17: .line 146
            goto 19
        18: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.close:(Ljava/io/FileDescriptor;)V
        19: .line 150
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lsun/nio/ch/FileChannelImpl;
            5   13     1    fl  Ljava/nio/channels/FileLock;
      Exception table:
        from    to  target  type
           6    10      11  any
          11    12      11  any
    Exceptions:
      throws java.io.IOException

  public int read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 153
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 154
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 3
         2: .line 155
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         3: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 157
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         5: .line 158
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         6: .line 160
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         7: .line 161
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 4 /* ti */
         8: .line 162
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
         9: .line 169
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        10: .line 170
            aload 0 /* this */
            iload 3 /* n */
            ifle 11
            iconst_1
            goto 12
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl
        11: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        12: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        13: .line 171
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 14
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        14: aload 2
            monitorexit
        15: .line 163
            iconst_0
            ireturn
        16: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* dst */
            ldc -1
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 3 /* n */
        17: .line 166
            iload 3 /* n */
            bipush -3
            if_icmpne 18
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
        18: .line 167
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 6
        19: .line 169
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        20: .line 170
            aload 0 /* this */
            iload 3 /* n */
            ifle 21
            iconst_1
            goto 22
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl
        21: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        22: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        23: .line 171
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 24
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 24
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        24: .line 167
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        25: iload 6
            ireturn
        26: .line 168
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: java.lang.Throwable
            astore 5
        27: .line 169
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        28: .line 170
            aload 0 /* this */
            iload 3 /* n */
            ifle 29
            iconst_1
            goto 30
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        29: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        30: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        31: .line 171
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 32
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 32
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        32: .line 172
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        end local 4 // int ti
        end local 3 // int n
        33: .line 156
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        34: athrow
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   35     0  this  Lsun/nio/ch/FileChannelImpl;
            0   35     1   dst  Ljava/nio/ByteBuffer;
            5   33     3     n  I
            6   33     4    ti  I
      Exception table:
        from    to  target  type
           6     9      26  any
          16    19      26  any
           4    15      33  any
          16    25      33  any
          26    34      33  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dst   

  public long read(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
         0: .line 179
            iload 2 /* offset */
            iflt 1
            iload 3 /* length */
            iflt 1
            iload 2 /* offset */
            aload 1 /* dsts */
            arraylength
            iload 3 /* length */
            isub
            if_icmple 2
         1: .line 180
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         3: .line 182
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 5
         4: .line 183
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         5: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         6: .line 185
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
         7: .line 186
            iconst_m1
            istore 7 /* ti */
        start local 7 // int ti
         8: .line 188
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         9: .line 189
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 7 /* ti */
        10: .line 190
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        11: .line 197
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        12: .line 198
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 13
            iconst_1
            goto 14
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
        13: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        14: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        15: .line 199
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 16
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        16: aload 4
            monitorexit
        17: .line 191
            lconst_0
            lreturn
        18: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
            lstore 5 /* n */
        19: .line 194
            lload 5 /* n */
            ldc -3
            lcmp
            ifne 20
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        20: .line 195
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 9
        21: .line 197
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        22: .line 198
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 23
            iconst_1
            goto 24
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        23: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        24: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        25: .line 199
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 26
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 195
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        27: lload 9
            lreturn
        28: .line 196
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 8
        29: .line 197
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        30: .line 198
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 31
            iconst_1
            goto 32
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        31: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        32: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        33: .line 199
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 34
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 34
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        34: .line 200
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        end local 7 // int ti
        end local 5 // long n
        35: .line 184
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        36: athrow
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   37     0    this  Lsun/nio/ch/FileChannelImpl;
            0   37     1    dsts  [Ljava/nio/ByteBuffer;
            0   37     2  offset  I
            0   37     3  length  I
            7   35     5       n  J
            8   35     7      ti  I
      Exception table:
        from    to  target  type
           8    11      28  any
          18    21      28  any
           6    17      35  any
          18    27      35  any
          28    36      35  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      dsts    
      offset  
      length  

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
         0: .line 205
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 206
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 3
         2: .line 207
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         3: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 209
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         5: .line 210
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         6: .line 212
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         7: .line 213
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 4 /* ti */
         8: .line 214
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
         9: .line 221
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        10: .line 222
            aload 0 /* this */
            iload 3 /* n */
            ifle 11
            iconst_1
            goto 12
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl
        11: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        12: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        13: .line 223
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 14
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        14: aload 2
            monitorexit
        15: .line 215
            iconst_0
            ireturn
        16: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* src */
            ldc -1
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 3 /* n */
        17: .line 218
            iload 3 /* n */
            bipush -3
            if_icmpne 18
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
        18: .line 219
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 6
        19: .line 221
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        20: .line 222
            aload 0 /* this */
            iload 3 /* n */
            ifle 21
            iconst_1
            goto 22
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl
        21: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        22: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        23: .line 223
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 24
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 24
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        24: .line 219
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        25: iload 6
            ireturn
        26: .line 220
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: java.lang.Throwable
            astore 5
        27: .line 221
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        28: .line 222
            aload 0 /* this */
            iload 3 /* n */
            ifle 29
            iconst_1
            goto 30
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        29: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        30: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        31: .line 223
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 32
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 32
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        32: .line 224
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        end local 4 // int ti
        end local 3 // int n
        33: .line 208
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        34: athrow
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   35     0  this  Lsun/nio/ch/FileChannelImpl;
            0   35     1   src  Ljava/nio/ByteBuffer;
            5   33     3     n  I
            6   33     4    ti  I
      Exception table:
        from    to  target  type
           6     9      26  any
          16    19      26  any
           4    15      33  any
          16    25      33  any
          26    34      33  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 231
            iload 2 /* offset */
            iflt 1
            iload 3 /* length */
            iflt 1
            iload 2 /* offset */
            aload 1 /* srcs */
            arraylength
            iload 3 /* length */
            isub
            if_icmple 2
         1: .line 232
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         2: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         3: .line 234
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 235
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         6: .line 237
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
         7: .line 238
            iconst_m1
            istore 7 /* ti */
        start local 7 // int ti
         8: .line 240
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         9: .line 241
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 7 /* ti */
        10: .line 242
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        11: .line 249
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        12: .line 250
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 13
            iconst_1
            goto 14
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
        13: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        14: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        15: .line 251
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 16
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        16: aload 4
            monitorexit
        17: .line 243
            lconst_0
            lreturn
        18: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IILsun/nio/ch/NativeDispatcher;)J
            lstore 5 /* n */
        19: .line 246
            lload 5 /* n */
            ldc -3
            lcmp
            ifne 20
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        20: .line 247
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 9
        21: .line 249
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        22: .line 250
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 23
            iconst_1
            goto 24
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        23: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        24: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        25: .line 251
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 26
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 247
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        27: lload 9
            lreturn
        28: .line 248
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 8
        29: .line 249
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        30: .line 250
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 31
            iconst_1
            goto 32
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        31: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        32: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        33: .line 251
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 34
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 34
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        34: .line 252
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        end local 7 // int ti
        end local 5 // long n
        35: .line 236
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        36: athrow
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   37     0    this  Lsun/nio/ch/FileChannelImpl;
            0   37     1    srcs  [Ljava/nio/ByteBuffer;
            0   37     2  offset  I
            0   37     3  length  I
            7   35     5       n  J
            8   35     7      ti  I
      Exception table:
        from    to  target  type
           8    11      28  any
          18    21      28  any
           6    17      35  any
          18    27      35  any
          28    36      35  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    
      offset  
      length  

  public long position();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 259
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 260
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 261
            ldc -1
            lstore 2 /* p */
        start local 2 // long p
         3: .line 262
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         4: .line 264
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         5: .line 265
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 4 /* ti */
         6: .line 266
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 14
         7: .line 275
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         8: .line 276
            aload 0 /* this */
            lload 2 /* p */
            ldc -1
            lcmp
            ifle 9
            iconst_1
            goto 10
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
         9: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        10: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        11: .line 277
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 12
            lload 2 /* p */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        12: aload 1
            monitorexit
        13: .line 267
            lconst_0
            lreturn
        14: .line 268
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.getAppend:(Ljava/io/FileDescriptor;)Z
            istore 5 /* append */
        start local 5 // boolean append
        15: .line 271
      StackMap locals: int
      StackMap stack:
            iload 5 /* append */
            ifeq 16
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
            goto 17
      StackMap locals:
      StackMap stack:
        16: aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            ldc -1
            invokevirtual sun.nio.ch.FileChannelImpl.position0:(Ljava/io/FileDescriptor;J)J
      StackMap locals:
      StackMap stack: long
        17: lstore 2 /* p */
        18: .line 272
            lload 2 /* p */
            ldc -3
            lcmp
            ifne 19
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 15
        19: .line 273
      StackMap locals:
      StackMap stack:
            lload 2 /* p */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 7
        20: .line 275
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        21: .line 276
            aload 0 /* this */
            lload 2 /* p */
            ldc -1
            lcmp
            ifle 22
            iconst_1
            goto 23
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        22: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int int top long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        23: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        24: .line 277
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 25
            lload 2 /* p */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 25
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        25: .line 273
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        26: lload 7
            lreturn
        end local 5 // boolean append
        27: .line 274
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 6
        28: .line 275
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        29: .line 276
            aload 0 /* this */
            lload 2 /* p */
            ldc -1
            lcmp
            ifle 30
            iconst_1
            goto 31
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int top java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        30: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int top java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        31: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        32: .line 277
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 33
            lload 2 /* p */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 33
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        33: .line 278
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        end local 4 // int ti
        end local 2 // long p
        34: .line 260
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        35: athrow
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    this  Lsun/nio/ch/FileChannelImpl;
            3   34     2       p  J
            4   34     4      ti  I
           15   27     5  append  Z
      Exception table:
        from    to  target  type
           4     7      27  any
          14    20      27  any
           2    13      34  any
          14    26      34  any
          27    35      34  any
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.FileChannel position(long);
    descriptor: (J)Ljava/nio/channels/FileChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long newPosition
         0: .line 283
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 284
            lload 1 /* newPosition */
            lconst_0
            lcmp
            ifge 3
         2: .line 285
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         3: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         4: .line 287
            ldc -1
            lstore 4 /* p */
        start local 4 // long p
         5: .line 288
            iconst_m1
            istore 6 /* ti */
        start local 6 // int ti
         6: .line 290
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         7: .line 291
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 6 /* ti */
         8: .line 292
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
         9: .line 299
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 6 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        10: .line 300
            aload 0 /* this */
            lload 4 /* p */
            ldc -1
            lcmp
            ifle 11
            iconst_1
            goto 12
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
        11: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        12: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        13: .line 301
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 14
            lload 4 /* p */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        14: aload 3
            monitorexit
        15: .line 293
            aconst_null
            areturn
        16: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            lload 1 /* newPosition */
            invokevirtual sun.nio.ch.FileChannelImpl.position0:(Ljava/io/FileDescriptor;J)J
            lstore 4 /* p */
        17: .line 296
            lload 4 /* p */
            ldc -3
            lcmp
            ifne 18
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
        18: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 8
        19: .line 299
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 6 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        20: .line 300
            aload 0 /* this */
            lload 4 /* p */
            ldc -1
            lcmp
            ifle 21
            iconst_1
            goto 22
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int top java.nio.channels.FileChannel
      StackMap stack: sun.nio.ch.FileChannelImpl
        21: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int top java.nio.channels.FileChannel
      StackMap stack: sun.nio.ch.FileChannelImpl int
        22: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        23: .line 301
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 24
            lload 4 /* p */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 24
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        24: .line 297
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        25: aload 8
            areturn
        26: .line 298
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 7
        27: .line 299
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 6 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        28: .line 300
            aload 0 /* this */
            lload 4 /* p */
            ldc -1
            lcmp
            ifle 29
            iconst_1
            goto 30
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        29: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        30: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        31: .line 301
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 32
            lload 4 /* p */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 32
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        32: .line 302
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        end local 6 // int ti
        end local 4 // long p
        33: .line 286
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        34: athrow
        end local 1 // long newPosition
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0         this  Lsun/nio/ch/FileChannelImpl;
            0   35     1  newPosition  J
            5   33     4            p  J
            6   33     6           ti  I
      Exception table:
        from    to  target  type
           6     9      26  any
          16    19      26  any
           4    15      33  any
          16    25      33  any
          26    34      33  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      newPosition  

  public long size();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 307
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 308
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 309
            ldc -1
            lstore 2 /* s */
        start local 2 // long s
         3: .line 310
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         4: .line 312
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         5: .line 313
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 4 /* ti */
         6: .line 314
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 14
         7: .line 321
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         8: .line 322
            aload 0 /* this */
            lload 2 /* s */
            ldc -1
            lcmp
            ifle 9
            iconst_1
            goto 10
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
         9: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        10: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        11: .line 323
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 12
            lload 2 /* s */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        12: aload 1
            monitorexit
        13: .line 315
            ldc -1
            lreturn
        14: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
            lstore 2 /* s */
        15: .line 318
            lload 2 /* s */
            ldc -3
            lcmp
            ifne 16
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 14
        16: .line 319
      StackMap locals:
      StackMap stack:
            lload 2 /* s */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 6
        17: .line 321
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        18: .line 322
            aload 0 /* this */
            lload 2 /* s */
            ldc -1
            lcmp
            ifle 19
            iconst_1
            goto 20
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        19: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        20: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        21: .line 323
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 22
            lload 2 /* s */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 22
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 319
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        23: lload 6
            lreturn
        24: .line 320
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 5
        25: .line 321
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        26: .line 322
            aload 0 /* this */
            lload 2 /* s */
            ldc -1
            lcmp
            ifle 27
            iconst_1
            goto 28
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        27: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        28: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        29: .line 323
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 30
            lload 2 /* s */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 30
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        30: .line 324
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        end local 4 // int ti
        end local 2 // long s
        31: .line 308
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        32: athrow
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   33     0  this  Lsun/nio/ch/FileChannelImpl;
            3   31     2     s  J
            4   31     4    ti  I
      Exception table:
        from    to  target  type
           4     7      24  any
          14    17      24  any
           2    13      31  any
          14    23      31  any
          24    32      31  any
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.FileChannel truncate(long);
    descriptor: (J)Ljava/nio/channels/FileChannel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=14, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long newSize
         0: .line 329
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 330
            lload 1 /* newSize */
            lconst_0
            lcmp
            ifge 3
         2: .line 331
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 333
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         6: .line 335
            iconst_m1
            istore 4 /* rv */
        start local 4 // int rv
         7: .line 336
            ldc -1
            lstore 5 /* p */
        start local 5 // long p
         8: .line 337
            iconst_m1
            istore 7 /* ti */
        start local 7 // int ti
         9: .line 338
            ldc -1
            lstore 8 /* rp */
        start local 8 // long rp
        10: .line 340
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
        11: .line 341
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 7 /* ti */
        12: .line 342
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        13: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        14: .line 379
            aload 0 /* this */
            iload 4 /* rv */
            iconst_m1
            if_icmple 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long
      StackMap stack: sun.nio.ch.FileChannelImpl
        15: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        16: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        17: .line 380
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 18
            iload 4 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        18: aload 3
            monitorexit
        19: .line 343
            aconst_null
            areturn
        20: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
            lstore 10 /* size */
        start local 10 // long size
        21: .line 349
            lload 10 /* size */
            ldc -3
            lcmp
            ifne 22
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        22: .line 350
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 30
        23: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        24: .line 379
            aload 0 /* this */
            iload 4 /* rv */
            iconst_m1
            if_icmple 25
            iconst_1
            goto 26
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        25: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        26: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        27: .line 380
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 28
            iload 4 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        28: aload 3
            monitorexit
        29: .line 351
            aconst_null
            areturn
        30: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            ldc -1
            invokevirtual sun.nio.ch.FileChannelImpl.position0:(Ljava/io/FileDescriptor;J)J
            lstore 5 /* p */
        31: .line 356
            lload 5 /* p */
            ldc -3
            lcmp
            ifne 32
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 30
        32: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 40
        33: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        34: .line 379
            aload 0 /* this */
            iload 4 /* rv */
            iconst_m1
            if_icmple 35
            iconst_1
            goto 36
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        35: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        36: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        37: .line 380
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 38
            iload 4 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        38: aload 3
            monitorexit
        39: .line 358
            aconst_null
            areturn
        40: .line 359
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 41
            lload 5 /* p */
            lconst_0
            lcmp
            ifge 41
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        41: .line 362
      StackMap locals:
      StackMap stack:
            lload 1 /* newSize */
            lload 10 /* size */
            lcmp
            ifge 52
        42: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            lload 1 /* newSize */
            invokevirtual sun.nio.ch.FileDispatcher.truncate:(Ljava/io/FileDescriptor;J)I
            istore 4 /* rv */
        43: .line 365
            iload 4 /* rv */
            bipush -3
            if_icmpne 44
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 42
        44: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 52
        45: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        46: .line 379
            aload 0 /* this */
            iload 4 /* rv */
            iconst_m1
            if_icmple 47
            iconst_1
            goto 48
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        47: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        48: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        49: .line 380
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 50
            iload 4 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 50
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        50: aload 3
            monitorexit
        51: .line 367
            aconst_null
            areturn
        52: .line 371
      StackMap locals:
      StackMap stack:
            lload 5 /* p */
            lload 1 /* newSize */
            lcmp
            ifle 54
        53: .line 372
            lload 1 /* newSize */
            lstore 5 /* p */
        54: .line 374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            lload 5 /* p */
            invokevirtual sun.nio.ch.FileChannelImpl.position0:(Ljava/io/FileDescriptor;J)J
            lstore 8 /* rp */
        55: .line 375
            lload 8 /* rp */
            ldc -3
            lcmp
            ifne 56
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 54
        56: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 13
        57: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        58: .line 379
            aload 0 /* this */
            iload 4 /* rv */
            iconst_m1
            if_icmple 59
            iconst_1
            goto 60
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long long top java.nio.channels.FileChannel
      StackMap stack: sun.nio.ch.FileChannelImpl
        59: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long long top java.nio.channels.FileChannel
      StackMap stack: sun.nio.ch.FileChannelImpl int
        60: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        61: .line 380
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 62
            iload 4 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 62
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        62: .line 376
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        63: aload 13
            areturn
        end local 10 // long size
        64: .line 377
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long
      StackMap stack: java.lang.Throwable
            astore 12
        65: .line 378
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        66: .line 379
            aload 0 /* this */
            iload 4 /* rv */
            iconst_m1
            if_icmple 67
            iconst_1
            goto 68
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long top top java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        67: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long top top java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        68: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        69: .line 380
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 70
            iload 4 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 70
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        70: .line 381
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        end local 8 // long rp
        end local 7 // int ti
        end local 5 // long p
        end local 4 // int rv
        71: .line 334
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        72: athrow
        end local 1 // long newSize
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   73     0     this  Lsun/nio/ch/FileChannelImpl;
            0   73     1  newSize  J
            7   71     4       rv  I
            8   71     5        p  J
            9   71     7       ti  I
           10   71     8       rp  J
           21   64    10     size  J
      Exception table:
        from    to  target  type
          10    13      64  any
          20    23      64  any
          30    33      64  any
          40    45      64  any
          52    57      64  any
           6    19      71  any
          20    29      71  any
          30    39      71  any
          40    51      71  any
          52    63      71  any
          64    72      71  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      newSize  

  public void force(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // boolean metaData
         0: .line 386
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 387
            iconst_m1
            istore 2 /* rv */
        start local 2 // int rv
         2: .line 388
            iconst_m1
            istore 3 /* ti */
        start local 3 // int ti
         3: .line 390
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         4: .line 391
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 3 /* ti */
         5: .line 392
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         6: .line 398
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 3 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         7: .line 399
            aload 0 /* this */
            iload 2 /* rv */
            iconst_m1
            if_icmple 8
            iconst_1
            goto 9
      StackMap locals: sun.nio.ch.FileChannelImpl int int int
      StackMap stack: sun.nio.ch.FileChannelImpl
         8: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl int int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
         9: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        10: .line 400
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 11
            iload 2 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 393
      StackMap locals:
      StackMap stack:
            return
        12: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            iload 1 /* metaData */
            invokevirtual sun.nio.ch.FileDispatcher.force:(Ljava/io/FileDescriptor;Z)I
            istore 2 /* rv */
        13: .line 396
            iload 2 /* rv */
            bipush -3
            if_icmpne 22
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 397
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 4
        16: .line 398
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 3 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        17: .line 399
            aload 0 /* this */
            iload 2 /* rv */
            iconst_m1
            if_icmple 18
            iconst_1
            goto 19
      StackMap locals: sun.nio.ch.FileChannelImpl int int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        18: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl int int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        19: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        20: .line 400
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 21
            iload 2 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 401
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        22: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 3 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        23: .line 399
            aload 0 /* this */
            iload 2 /* rv */
            iconst_m1
            if_icmple 24
            iconst_1
            goto 25
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        24: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl int int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        25: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        26: .line 400
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 27
            iload 2 /* rv */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 402
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int ti
        end local 2 // int rv
        end local 1 // boolean metaData
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lsun/nio/ch/FileChannelImpl;
            0   28     1  metaData  Z
            2   28     2        rv  I
            3   28     3        ti  I
      Exception table:
        from    to  target  type
           3     6      15  any
          12    15      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      metaData  

  private long transferToDirectlyInternal(long, int, java.nio.channels.WritableByteChannel, java.io.FileDescriptor);
    descriptor: (JILjava/nio/channels/WritableByteChannel;Ljava/io/FileDescriptor;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // int icount
        start local 4 // java.nio.channels.WritableByteChannel target
        start local 5 // java.io.FileDescriptor targetFD
         0: .line 424
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.transferToDirectlyNeedsPositionLock:()Z
            ifeq 2
         1: .line 425
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 427
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 6 /* n */
        start local 6 // long n
         3: .line 428
            iconst_m1
            istore 8 /* ti */
        start local 8 // int ti
         4: .line 430
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         5: .line 431
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 8 /* ti */
         6: .line 432
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         7: .line 451
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 8 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         8: .line 452
            aload 0 /* this */
            lload 6 /* n */
            ldc -1
            lcmp
            ifle 9
            iconst_1
            goto 10
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int
      StackMap stack: sun.nio.ch.FileChannelImpl
         9: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        10: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        11: .line 433
            ldc -1
            lreturn
        12: .line 435
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            lload 1 /* position */
            iload 3 /* icount */
            i2l
            aload 5 /* targetFD */
            invokevirtual sun.nio.ch.FileChannelImpl.transferTo0:(Ljava/io/FileDescriptor;JJLjava/io/FileDescriptor;)J
            lstore 6 /* n */
        13: .line 436
            lload 6 /* n */
            ldc -3
            lcmp
            ifne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 437
      StackMap locals:
      StackMap stack:
            lload 6 /* n */
            ldc -6
            lcmp
            ifne 24
        15: .line 438
            aload 4 /* target */
            instanceof sun.nio.ch.SinkChannelImpl
            ifeq 17
        16: .line 439
            iconst_0
            putstatic sun.nio.ch.FileChannelImpl.pipeSupported:Z
        17: .line 440
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 19
        18: .line 441
            iconst_0
            putstatic sun.nio.ch.FileChannelImpl.fileSupported:Z
        19: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 8 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        20: .line 452
            aload 0 /* this */
            lload 6 /* n */
            ldc -1
            lcmp
            ifle 21
            iconst_1
            goto 22
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        21: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        22: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        23: .line 442
            ldc -6
            lreturn
        24: .line 444
      StackMap locals:
      StackMap stack:
            lload 6 /* n */
            ldc -4
            lcmp
            ifne 31
        25: .line 446
            iconst_0
            putstatic sun.nio.ch.FileChannelImpl.transferSupported:Z
        26: .line 451
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 8 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        27: .line 452
            aload 0 /* this */
            lload 6 /* n */
            ldc -1
            lcmp
            ifle 28
            iconst_1
            goto 29
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        28: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        29: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        30: .line 447
            ldc -4
            lreturn
        31: .line 449
      StackMap locals:
      StackMap stack:
            lload 6 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 10
        32: .line 451
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 8 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        33: .line 452
            aload 0 /* this */
            lload 6 /* n */
            ldc -1
            lcmp
            ifle 34
            iconst_1
            goto 35
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        34: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl int
        35: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        36: .line 449
            lload 10
            lreturn
        37: .line 450
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int
      StackMap stack: java.lang.Throwable
            astore 9
        38: .line 451
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 8 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        39: .line 452
            aload 0 /* this */
            lload 6 /* n */
            ldc -1
            lcmp
            ifle 40
            iconst_1
            goto 41
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        40: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor long int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        41: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        42: .line 453
            aload 9
            athrow
        end local 8 // int ti
        end local 6 // long n
        end local 5 // java.io.FileDescriptor targetFD
        end local 4 // java.nio.channels.WritableByteChannel target
        end local 3 // int icount
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   43     0      this  Lsun/nio/ch/FileChannelImpl;
            0   43     1  position  J
            0   43     3    icount  I
            0   43     4    target  Ljava/nio/channels/WritableByteChannel;
            0   43     5  targetFD  Ljava/io/FileDescriptor;
            3   43     6         n  J
            4   43     8        ti  I
      Exception table:
        from    to  target  type
           4     7      37  any
          12    19      37  any
          24    26      37  any
          31    32      37  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      icount    
      target    
      targetFD  

  private long transferToDirectly(long, int, java.nio.channels.WritableByteChannel);
    descriptor: (JILjava/nio/channels/WritableByteChannel;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // int icount
        start local 4 // java.nio.channels.WritableByteChannel target
         0: .line 460
            getstatic sun.nio.ch.FileChannelImpl.transferSupported:Z
            ifne 2
         1: .line 461
            ldc -4
            lreturn
         2: .line 463
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* targetFD */
        start local 5 // java.io.FileDescriptor targetFD
         3: .line 464
            aload 4 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 8
         4: .line 465
            getstatic sun.nio.ch.FileChannelImpl.fileSupported:Z
            ifne 6
         5: .line 466
            ldc -6
            lreturn
         6: .line 467
      StackMap locals: java.io.FileDescriptor
      StackMap stack:
            aload 4 /* target */
            checkcast sun.nio.ch.FileChannelImpl
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            astore 5 /* targetFD */
         7: .line 468
            goto 15
      StackMap locals:
      StackMap stack:
         8: aload 4 /* target */
            instanceof sun.nio.ch.SelChImpl
            ifeq 15
         9: .line 470
            aload 4 /* target */
            instanceof sun.nio.ch.SinkChannelImpl
            ifeq 11
            getstatic sun.nio.ch.FileChannelImpl.pipeSupported:Z
            ifne 11
        10: .line 471
            ldc -6
            lreturn
        11: .line 475
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            checkcast java.nio.channels.SelectableChannel
            astore 6 /* sc */
        start local 6 // java.nio.channels.SelectableChannel sc
        12: .line 476
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 6 /* sc */
            invokevirtual sun.nio.ch.FileDispatcher.canTransferToDirectly:(Ljava/nio/channels/SelectableChannel;)Z
            ifne 14
        13: .line 477
            ldc -6
            lreturn
        14: .line 479
      StackMap locals: java.nio.channels.SelectableChannel
      StackMap stack:
            aload 4 /* target */
            checkcast sun.nio.ch.SelChImpl
            invokeinterface sun.nio.ch.SelChImpl.getFD:()Ljava/io/FileDescriptor;
            astore 5 /* targetFD */
        end local 6 // java.nio.channels.SelectableChannel sc
        15: .line 482
      StackMap locals:
      StackMap stack:
            aload 5 /* targetFD */
            ifnonnull 17
        16: .line 483
            ldc -4
            lreturn
        17: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
            istore 6 /* thisFDVal */
        start local 6 // int thisFDVal
        18: .line 485
            aload 5 /* targetFD */
            invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
            istore 7 /* targetFDVal */
        start local 7 // int targetFDVal
        19: .line 486
            iload 6 /* thisFDVal */
            iload 7 /* targetFDVal */
            if_icmpne 21
        20: .line 487
            ldc -4
            lreturn
        21: .line 489
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.transferToDirectlyNeedsPositionLock:()Z
            ifeq 35
        22: .line 490
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 8
            monitorenter
        23: .line 491
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            lstore 9 /* pos */
        start local 9 // long pos
        24: .line 493
            aload 0 /* this */
            lload 1 /* position */
            iload 3 /* icount */
        25: .line 494
            aload 4 /* target */
            aload 5 /* targetFD */
        26: .line 493
            invokevirtual sun.nio.ch.FileChannelImpl.transferToDirectlyInternal:(JILjava/nio/channels/WritableByteChannel;Ljava/io/FileDescriptor;)J
            lstore 12
        27: .line 496
            aload 0 /* this */
            lload 9 /* pos */
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            pop
        28: .line 493
            aload 8
            monitorexit
        29: lload 12
            lreturn
        30: .line 495
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor int int java.lang.Object long
      StackMap stack: java.lang.Throwable
            astore 11
        31: .line 496
            aload 0 /* this */
            lload 9 /* pos */
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            pop
        32: .line 497
            aload 11
            athrow
        end local 9 // long pos
        33: .line 490
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel java.io.FileDescriptor int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 8
            monitorexit
        34: athrow
        35: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            iload 3 /* icount */
            aload 4 /* target */
            aload 5 /* targetFD */
            invokevirtual sun.nio.ch.FileChannelImpl.transferToDirectlyInternal:(JILjava/nio/channels/WritableByteChannel;Ljava/io/FileDescriptor;)J
            lreturn
        end local 7 // int targetFDVal
        end local 6 // int thisFDVal
        end local 5 // java.io.FileDescriptor targetFD
        end local 4 // java.nio.channels.WritableByteChannel target
        end local 3 // int icount
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0         this  Lsun/nio/ch/FileChannelImpl;
            0   36     1     position  J
            0   36     3       icount  I
            0   36     4       target  Ljava/nio/channels/WritableByteChannel;
            3   36     5     targetFD  Ljava/io/FileDescriptor;
           12   15     6           sc  Ljava/nio/channels/SelectableChannel;
           18   36     6    thisFDVal  I
           19   36     7  targetFDVal  I
           24   33     9          pos  J
      Exception table:
        from    to  target  type
          24    27      30  any
          23    29      33  any
          30    34      33  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      icount    
      target    

  private long transferToTrustedChannel(long, long, java.nio.channels.WritableByteChannel);
    descriptor: (JJLjava/nio/channels/WritableByteChannel;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // long count
        start local 5 // java.nio.channels.WritableByteChannel target
         0: .line 511
            aload 5 /* target */
            instanceof sun.nio.ch.SelChImpl
            istore 6 /* isSelChImpl */
        start local 6 // boolean isSelChImpl
         1: .line 512
            aload 5 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifne 3
            iload 6 /* isSelChImpl */
            ifne 3
         2: .line 513
            ldc -4
            lreturn
         3: .line 516
      StackMap locals: int
      StackMap stack:
            lload 3 /* count */
            lstore 7 /* remaining */
        start local 7 // long remaining
         4: .line 517
            goto 31
         5: .line 518
      StackMap locals: long
      StackMap stack:
            lload 7 /* remaining */
            ldc 8388608
            invokestatic java.lang.Math.min:(JJ)J
            lstore 9 /* size */
        start local 9 // long size
         6: .line 520
            aload 0 /* this */
            getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
            lload 1 /* position */
            lload 9 /* size */
            invokevirtual sun.nio.ch.FileChannelImpl.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
            astore 11 /* dbb */
        start local 11 // java.nio.MappedByteBuffer dbb
         7: .line 523
            aload 5 /* target */
            aload 11 /* dbb */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 12 /* n */
        start local 12 // int n
         8: .line 524
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 9
            iload 12 /* n */
            ifge 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 525
      StackMap locals: long java.nio.MappedByteBuffer int
      StackMap stack:
            lload 7 /* remaining */
            iload 12 /* n */
            i2l
            lsub
            lstore 7 /* remaining */
        10: .line 526
            iload 6 /* isSelChImpl */
            ifeq 13
        11: .line 533
            aload 11 /* dbb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        12: .line 528
            goto 32
        13: .line 530
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 14
            iload 12 /* n */
            ifgt 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 531
      StackMap locals:
      StackMap stack:
            lload 1 /* position */
            iload 12 /* n */
            i2l
            ladd
            lstore 1 /* position */
        end local 12 // int n
        15: .line 532
            goto 19
      StackMap locals: sun.nio.ch.FileChannelImpl long long java.nio.channels.WritableByteChannel int long long java.nio.MappedByteBuffer
      StackMap stack: java.lang.Throwable
        16: astore 13
        17: .line 533
            aload 11 /* dbb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        18: .line 534
            aload 13
            athrow
        19: .line 533
      StackMap locals:
      StackMap stack:
            aload 11 /* dbb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        end local 11 // java.nio.MappedByteBuffer dbb
        20: .line 535
            goto 31
      StackMap locals: sun.nio.ch.FileChannelImpl long long java.nio.channels.WritableByteChannel int long long
      StackMap stack: java.nio.channels.ClosedByInterruptException
        21: astore 11 /* e */
        start local 11 // java.nio.channels.ClosedByInterruptException e
        22: .line 538
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 23
            aload 5 /* target */
            invokeinterface java.nio.channels.WritableByteChannel.isOpen:()Z
            ifeq 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 540
      StackMap locals: java.nio.channels.ClosedByInterruptException
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.close:()V
        24: .line 541
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 12 /* suppressed */
        start local 12 // java.lang.Throwable suppressed
        26: .line 542
            aload 11 /* e */
            aload 12 /* suppressed */
            invokevirtual java.nio.channels.ClosedByInterruptException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable suppressed
        27: .line 544
      StackMap locals:
      StackMap stack:
            aload 11 /* e */
            athrow
        end local 11 // java.nio.channels.ClosedByInterruptException e
        28: .line 545
      StackMap locals: sun.nio.ch.FileChannelImpl long long java.nio.channels.WritableByteChannel int long long
      StackMap stack: java.io.IOException
            astore 11 /* ioe */
        start local 11 // java.io.IOException ioe
        29: .line 547
            lload 7 /* remaining */
            lload 3 /* count */
            lcmp
            ifne 32
        30: .line 548
            aload 11 /* ioe */
            athrow
        end local 11 // java.io.IOException ioe
        end local 9 // long size
        31: .line 517
      StackMap locals:
      StackMap stack:
            lload 7 /* remaining */
            lconst_0
            lcmp
            ifgt 5
        32: .line 552
      StackMap locals:
      StackMap stack:
            lload 3 /* count */
            lload 7 /* remaining */
            lsub
            lreturn
        end local 7 // long remaining
        end local 6 // boolean isSelChImpl
        end local 5 // java.nio.channels.WritableByteChannel target
        end local 3 // long count
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Lsun/nio/ch/FileChannelImpl;
            0   33     1     position  J
            0   33     3        count  J
            0   33     5       target  Ljava/nio/channels/WritableByteChannel;
            1   33     6  isSelChImpl  Z
            4   33     7    remaining  J
            6   31     9         size  J
            7   20    11          dbb  Ljava/nio/MappedByteBuffer;
            8   15    12            n  I
           22   28    11            e  Ljava/nio/channels/ClosedByInterruptException;
           26   27    12   suppressed  Ljava/lang/Throwable;
           29   31    11          ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7    11      16  any
          13    16      16  any
           6    12      21  Class java.nio.channels.ClosedByInterruptException
          13    20      21  Class java.nio.channels.ClosedByInterruptException
          23    24      25  Class java.lang.Throwable
           6    12      28  Class java.io.IOException
          13    20      28  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      count     
      target    

  private long transferToArbitraryChannel(long, int, java.nio.channels.WritableByteChannel);
    descriptor: (JILjava/nio/channels/WritableByteChannel;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // int icount
        start local 4 // java.nio.channels.WritableByteChannel target
         0: .line 560
            iload 3 /* icount */
            sipush 8192
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* c */
        start local 5 // int c
         1: .line 561
            iload 5 /* c */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 6 /* bb */
        start local 6 // java.nio.ByteBuffer bb
         2: .line 562
            lconst_0
            lstore 7 /* tw */
        start local 7 // long tw
         3: .line 563
            lload 1 /* position */
            lstore 9 /* pos */
        start local 9 // long pos
         4: .line 565
            aload 6 /* bb */
            invokestatic sun.nio.ch.Util.erase:(Ljava/nio/ByteBuffer;)V
         5: .line 566
            goto 17
         6: .line 567
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel int java.nio.ByteBuffer long long
      StackMap stack:
            aload 6 /* bb */
            iload 3 /* icount */
            i2l
            lload 7 /* tw */
            lsub
            l2i
            sipush 8192
            invokestatic java.lang.Math.min:(II)I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
         7: .line 568
            aload 0 /* this */
            aload 6 /* bb */
            lload 9 /* pos */
            invokevirtual sun.nio.ch.FileChannelImpl.read:(Ljava/nio/ByteBuffer;J)I
            istore 11 /* nr */
        start local 11 // int nr
         8: .line 569
            iload 11 /* nr */
            ifgt 10
         9: .line 570
            goto 18
        10: .line 571
      StackMap locals: int
      StackMap stack:
            aload 6 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        11: .line 574
            aload 4 /* target */
            aload 6 /* bb */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 12 /* nw */
        start local 12 // int nw
        12: .line 575
            lload 7 /* tw */
            iload 12 /* nw */
            i2l
            ladd
            lstore 7 /* tw */
        13: .line 576
            iload 12 /* nw */
            iload 11 /* nr */
            if_icmpeq 15
        14: .line 577
            goto 18
        15: .line 578
      StackMap locals: int
      StackMap stack:
            lload 9 /* pos */
            iload 12 /* nw */
            i2l
            ladd
            lstore 9 /* pos */
        16: .line 579
            aload 6 /* bb */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        end local 12 // int nw
        end local 11 // int nr
        17: .line 566
      StackMap locals:
      StackMap stack:
            lload 7 /* tw */
            iload 3 /* icount */
            i2l
            lcmp
            iflt 6
        18: .line 581
      StackMap locals:
      StackMap stack:
            lload 7 /* tw */
            lstore 14
        19: .line 587
            aload 6 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        20: .line 581
            lload 14
            lreturn
        21: .line 582
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* x */
        start local 11 // java.io.IOException x
        22: .line 583
            lload 7 /* tw */
            lconst_0
            lcmp
            ifle 26
        23: .line 584
            lload 7 /* tw */
            lstore 14
        24: .line 587
            aload 6 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        25: .line 584
            lload 14
            lreturn
        26: .line 585
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 11 /* x */
            athrow
        end local 11 // java.io.IOException x
        27: .line 586
      StackMap locals: sun.nio.ch.FileChannelImpl long int java.nio.channels.WritableByteChannel int java.nio.ByteBuffer long long
      StackMap stack: java.lang.Throwable
            astore 13
        28: .line 587
            aload 6 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        29: .line 588
            aload 13
            athrow
        end local 9 // long pos
        end local 7 // long tw
        end local 6 // java.nio.ByteBuffer bb
        end local 5 // int c
        end local 4 // java.nio.channels.WritableByteChannel target
        end local 3 // int icount
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Lsun/nio/ch/FileChannelImpl;
            0   30     1  position  J
            0   30     3    icount  I
            0   30     4    target  Ljava/nio/channels/WritableByteChannel;
            1   30     5         c  I
            2   30     6        bb  Ljava/nio/ByteBuffer;
            3   30     7        tw  J
            4   30     9       pos  J
            8   17    11        nr  I
           12   17    12        nw  I
           22   27    11         x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    19      21  Class java.io.IOException
           4    19      27  any
          21    24      27  any
          26    27      27  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      icount    
      target    

  public long transferTo(long, long, java.nio.channels.WritableByteChannel);
    descriptor: (JJLjava/nio/channels/WritableByteChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // long count
        start local 5 // java.nio.channels.WritableByteChannel target
         0: .line 595
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 596
            aload 5 /* target */
            invokeinterface java.nio.channels.WritableByteChannel.isOpen:()Z
            ifne 3
         2: .line 597
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         3: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 5
         4: .line 599
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         5: .line 600
      StackMap locals:
      StackMap stack:
            aload 5 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 8
         6: .line 601
            aload 5 /* target */
            checkcast sun.nio.ch.FileChannelImpl
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 8
         7: .line 602
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         8: .line 603
      StackMap locals:
      StackMap stack:
            lload 1 /* position */
            lconst_0
            lcmp
            iflt 9
            lload 3 /* count */
            lconst_0
            lcmp
            ifge 10
         9: .line 604
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        10: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.size:()J
            lstore 6 /* sz */
        start local 6 // long sz
        11: .line 606
            lload 1 /* position */
            lload 6 /* sz */
            lcmp
            ifle 13
        12: .line 607
            lconst_0
            lreturn
        13: .line 608
      StackMap locals: long
      StackMap stack:
            lload 3 /* count */
            ldc 2147483647
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 8 /* icount */
        start local 8 // int icount
        14: .line 609
            lload 6 /* sz */
            lload 1 /* position */
            lsub
            iload 8 /* icount */
            i2l
            lcmp
            ifge 16
        15: .line 610
            lload 6 /* sz */
            lload 1 /* position */
            lsub
            l2i
            istore 8 /* icount */
        16: .line 615
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            iload 8 /* icount */
            aload 5 /* target */
            invokevirtual sun.nio.ch.FileChannelImpl.transferToDirectly:(JILjava/nio/channels/WritableByteChannel;)J
            dup2
            lstore 9 /* n */
        start local 9 // long n
        17: lconst_0
            lcmp
            iflt 19
        18: .line 616
            lload 9 /* n */
            lreturn
        19: .line 619
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            iload 8 /* icount */
            i2l
            aload 5 /* target */
            invokevirtual sun.nio.ch.FileChannelImpl.transferToTrustedChannel:(JJLjava/nio/channels/WritableByteChannel;)J
            dup2
            lstore 9 /* n */
            lconst_0
            lcmp
            iflt 21
        20: .line 620
            lload 9 /* n */
            lreturn
        21: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            iload 8 /* icount */
            aload 5 /* target */
            invokevirtual sun.nio.ch.FileChannelImpl.transferToArbitraryChannel:(JILjava/nio/channels/WritableByteChannel;)J
            lreturn
        end local 9 // long n
        end local 8 // int icount
        end local 6 // long sz
        end local 5 // java.nio.channels.WritableByteChannel target
        end local 3 // long count
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lsun/nio/ch/FileChannelImpl;
            0   22     1  position  J
            0   22     3     count  J
            0   22     5    target  Ljava/nio/channels/WritableByteChannel;
           11   22     6        sz  J
           14   22     8    icount  I
           17   22     9         n  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      count     
      target    

  private long transferFromFileChannel(sun.nio.ch.FileChannelImpl, long, long);
    descriptor: (Lsun/nio/ch/FileChannelImpl;JJ)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=21, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // sun.nio.ch.FileChannelImpl src
        start local 2 // long position
        start local 4 // long count
         0: .line 630
            aload 1 /* src */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 2
         1: .line 631
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 632
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         3: .line 633
            aload 1 /* src */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            lstore 7 /* pos */
        start local 7 // long pos
         4: .line 634
            lload 4 /* count */
            aload 1 /* src */
            invokevirtual sun.nio.ch.FileChannelImpl.size:()J
            lload 7 /* pos */
            lsub
            invokestatic java.lang.Math.min:(JJ)J
            lstore 9 /* max */
        start local 9 // long max
         5: .line 636
            lload 9 /* max */
            lstore 11 /* remaining */
        start local 11 // long remaining
         6: .line 637
            lload 7 /* pos */
            lstore 13 /* p */
        start local 13 // long p
         7: .line 638
            goto 25
         8: .line 639
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileChannelImpl long long java.lang.Object long long long long
      StackMap stack:
            lload 11 /* remaining */
            ldc 8388608
            invokestatic java.lang.Math.min:(JJ)J
            lstore 15 /* size */
        start local 15 // long size
         9: .line 641
            aload 1 /* src */
            getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
            lload 13 /* p */
            lload 15 /* size */
            invokevirtual sun.nio.ch.FileChannelImpl.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
            astore 17 /* bb */
        start local 17 // java.nio.MappedByteBuffer bb
        10: .line 643
            aload 0 /* this */
            aload 17 /* bb */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.write:(Ljava/nio/ByteBuffer;J)I
            i2l
            lstore 18 /* n */
        start local 18 // long n
        11: .line 644
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 12
            lload 18 /* n */
            lconst_0
            lcmp
            ifgt 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 645
      StackMap locals: long java.nio.MappedByteBuffer long
      StackMap stack:
            lload 13 /* p */
            lload 18 /* n */
            ladd
            lstore 13 /* p */
        13: .line 646
            lload 2 /* position */
            lload 18 /* n */
            ladd
            lstore 2 /* position */
        14: .line 647
            lload 11 /* remaining */
            lload 18 /* n */
            lsub
            lstore 11 /* remaining */
        end local 18 // long n
        15: .line 648
            goto 24
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileChannelImpl long long java.lang.Object long long long long long java.nio.MappedByteBuffer
      StackMap stack: java.io.IOException
        16: astore 18 /* ioe */
        start local 18 // java.io.IOException ioe
        17: .line 650
            lload 11 /* remaining */
            lload 9 /* max */
            lcmp
            ifne 19
        18: .line 651
            aload 18 /* ioe */
            athrow
        19: .line 654
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 17 /* bb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        20: .line 652
            goto 26
        end local 18 // java.io.IOException ioe
        21: .line 653
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileChannelImpl long long java.lang.Object long long long long long java.nio.MappedByteBuffer
      StackMap stack: java.lang.Throwable
            astore 20
        22: .line 654
            aload 17 /* bb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        23: .line 655
            aload 20
            athrow
        24: .line 654
      StackMap locals:
      StackMap stack:
            aload 17 /* bb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        end local 17 // java.nio.MappedByteBuffer bb
        end local 15 // long size
        25: .line 638
      StackMap locals:
      StackMap stack:
            lload 11 /* remaining */
            lconst_0
            lcmp
            ifgt 8
        26: .line 657
      StackMap locals:
      StackMap stack:
            lload 9 /* max */
            lload 11 /* remaining */
            lsub
            lstore 15 /* nwritten */
        start local 15 // long nwritten
        27: .line 658
            aload 1 /* src */
            lload 7 /* pos */
            lload 15 /* nwritten */
            ladd
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            pop
        28: .line 659
            lload 15 /* nwritten */
            aload 6
            monitorexit
        29: lreturn
        end local 15 // long nwritten
        end local 13 // long p
        end local 11 // long remaining
        end local 9 // long max
        end local 7 // long pos
        30: .line 632
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileChannelImpl long long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 6
            monitorexit
        31: athrow
        end local 4 // long count
        end local 2 // long position
        end local 1 // sun.nio.ch.FileChannelImpl src
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lsun/nio/ch/FileChannelImpl;
            0   32     1        src  Lsun/nio/ch/FileChannelImpl;
            0   32     2   position  J
            0   32     4      count  J
            4   30     7        pos  J
            5   30     9        max  J
            6   30    11  remaining  J
            7   30    13          p  J
            9   25    15       size  J
           10   25    17         bb  Ljava/nio/MappedByteBuffer;
           11   15    18          n  J
           17   21    18        ioe  Ljava/io/IOException;
           27   30    15   nwritten  J
      Exception table:
        from    to  target  type
          10    15      16  Class java.io.IOException
          10    19      21  any
           3    29      30  any
          30    31      30  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       
      position  
      count     

  private long transferFromArbitraryChannel(java.nio.channels.ReadableByteChannel, long, long);
    descriptor: (Ljava/nio/channels/ReadableByteChannel;JJ)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=17, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.channels.ReadableByteChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 670
            lload 4 /* count */
            ldc 8192
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* c */
        start local 6 // int c
         1: .line 671
            iload 6 /* c */
            invokestatic sun.nio.ch.Util.getTemporaryDirectBuffer:(I)Ljava/nio/ByteBuffer;
            astore 7 /* bb */
        start local 7 // java.nio.ByteBuffer bb
         2: .line 672
            lconst_0
            lstore 8 /* tw */
        start local 8 // long tw
         3: .line 673
            lload 2 /* position */
            lstore 10 /* pos */
        start local 10 // long pos
         4: .line 675
            aload 7 /* bb */
            invokestatic sun.nio.ch.Util.erase:(Ljava/nio/ByteBuffer;)V
         5: .line 676
            goto 17
         6: .line 677
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.ReadableByteChannel long long int java.nio.ByteBuffer long long
      StackMap stack:
            aload 7 /* bb */
            lload 4 /* count */
            lload 8 /* tw */
            lsub
            ldc 8192
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
         7: .line 680
            aload 1 /* src */
            aload 7 /* bb */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 12 /* nr */
        start local 12 // int nr
         8: .line 681
            iload 12 /* nr */
            ifgt 10
         9: .line 682
            goto 18
        10: .line 683
      StackMap locals: int
      StackMap stack:
            aload 7 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        11: .line 684
            aload 0 /* this */
            aload 7 /* bb */
            lload 10 /* pos */
            invokevirtual sun.nio.ch.FileChannelImpl.write:(Ljava/nio/ByteBuffer;J)I
            istore 13 /* nw */
        start local 13 // int nw
        12: .line 685
            lload 8 /* tw */
            iload 13 /* nw */
            i2l
            ladd
            lstore 8 /* tw */
        13: .line 686
            iload 13 /* nw */
            iload 12 /* nr */
            if_icmpeq 15
        14: .line 687
            goto 18
        15: .line 688
      StackMap locals: int
      StackMap stack:
            lload 10 /* pos */
            iload 13 /* nw */
            i2l
            ladd
            lstore 10 /* pos */
        16: .line 689
            aload 7 /* bb */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        end local 13 // int nw
        end local 12 // int nr
        17: .line 676
      StackMap locals:
      StackMap stack:
            lload 8 /* tw */
            lload 4 /* count */
            lcmp
            iflt 6
        18: .line 691
      StackMap locals:
      StackMap stack:
            lload 8 /* tw */
            lstore 15
        19: .line 697
            aload 7 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        20: .line 691
            lload 15
            lreturn
        21: .line 692
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 12 /* x */
        start local 12 // java.io.IOException x
        22: .line 693
            lload 8 /* tw */
            lconst_0
            lcmp
            ifle 26
        23: .line 694
            lload 8 /* tw */
            lstore 15
        24: .line 697
            aload 7 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        25: .line 694
            lload 15
            lreturn
        26: .line 695
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 12 /* x */
            athrow
        end local 12 // java.io.IOException x
        27: .line 696
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.ReadableByteChannel long long int java.nio.ByteBuffer long long
      StackMap stack: java.lang.Throwable
            astore 14
        28: .line 697
            aload 7 /* bb */
            invokestatic sun.nio.ch.Util.releaseTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
        29: .line 698
            aload 14
            athrow
        end local 10 // long pos
        end local 8 // long tw
        end local 7 // java.nio.ByteBuffer bb
        end local 6 // int c
        end local 4 // long count
        end local 2 // long position
        end local 1 // java.nio.channels.ReadableByteChannel src
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Lsun/nio/ch/FileChannelImpl;
            0   30     1       src  Ljava/nio/channels/ReadableByteChannel;
            0   30     2  position  J
            0   30     4     count  J
            1   30     6         c  I
            2   30     7        bb  Ljava/nio/ByteBuffer;
            3   30     8        tw  J
            4   30    10       pos  J
            8   17    12        nr  I
           12   17    13        nw  I
           22   27    12         x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    19      21  Class java.io.IOException
           4    19      27  any
          21    24      27  any
          26    27      27  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       
      position  
      count     

  public long transferFrom(java.nio.channels.ReadableByteChannel, long, long);
    descriptor: (Ljava/nio/channels/ReadableByteChannel;JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.channels.ReadableByteChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 705
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 706
            aload 1 /* src */
            invokeinterface java.nio.channels.ReadableByteChannel.isOpen:()Z
            ifne 3
         2: .line 707
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         3: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 709
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 710
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            iflt 6
            lload 4 /* count */
            lconst_0
            lcmp
            ifge 7
         6: .line 711
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         7: .line 712
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.size:()J
            lcmp
            ifle 9
         8: .line 713
            lconst_0
            lreturn
         9: .line 714
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 13
        10: .line 715
            aload 0 /* this */
            aload 1 /* src */
            checkcast sun.nio.ch.FileChannelImpl
        11: .line 716
            lload 2 /* position */
            lload 4 /* count */
        12: .line 715
            invokevirtual sun.nio.ch.FileChannelImpl.transferFromFileChannel:(Lsun/nio/ch/FileChannelImpl;JJ)J
            lreturn
        13: .line 718
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            lload 2 /* position */
            lload 4 /* count */
            invokevirtual sun.nio.ch.FileChannelImpl.transferFromArbitraryChannel:(Ljava/nio/channels/ReadableByteChannel;JJ)J
            lreturn
        end local 4 // long count
        end local 2 // long position
        end local 1 // java.nio.channels.ReadableByteChannel src
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lsun/nio/ch/FileChannelImpl;
            0   14     1       src  Ljava/nio/channels/ReadableByteChannel;
            0   14     2  position  J
            0   14     4     count  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       
      position  
      count     

  public int read(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long position
         0: .line 722
            aload 1 /* dst */
            ifnonnull 2
         1: .line 723
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 724
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 725
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 726
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 6
         5: .line 727
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         6: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         7: .line 729
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.needsPositionLock:()Z
            ifeq 13
         8: .line 730
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         9: .line 731
            aload 0 /* this */
            aload 1 /* dst */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.readInternal:(Ljava/nio/ByteBuffer;J)I
            aload 4
            monitorexit
        10: ireturn
        11: .line 730
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        12: athrow
        13: .line 734
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dst */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.readInternal:(Ljava/nio/ByteBuffer;J)I
            ireturn
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lsun/nio/ch/FileChannelImpl;
            0   14     1       dst  Ljava/nio/ByteBuffer;
            0   14     2  position  J
      Exception table:
        from    to  target  type
           9    10      11  any
          11    12      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      dst       
      position  

  private int readInternal(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long position
         0: .line 739
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.needsPositionLock:()Z
            ifeq 1
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 740
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         2: .line 741
            iconst_m1
            istore 5 /* ti */
        start local 5 // int ti
         3: .line 743
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.uninterruptible:Z
            ifeq 4
            iconst_0
            goto 5
      StackMap locals: int int
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 6 /* interruptible */
        start local 6 // boolean interruptible
         6: .line 745
            iload 6 /* interruptible */
            ifeq 7
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         7: .line 746
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 5 /* ti */
         8: .line 747
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 15
         9: .line 754
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 5 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        10: .line 755
            iload 6 /* interruptible */
            ifeq 13
            aload 0 /* this */
            iload 4 /* n */
            ifle 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
        11: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        12: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        13: .line 756
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 14
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 748
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        15: .line 750
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* dst */
            lload 2 /* position */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 4 /* n */
        16: .line 751
            iload 4 /* n */
            bipush -3
            if_icmpne 17
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 15
        17: .line 752
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 8
        18: .line 754
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 5 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        19: .line 755
            iload 6 /* interruptible */
            ifeq 22
            aload 0 /* this */
            iload 4 /* n */
            ifle 20
            iconst_1
            goto 21
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl
        20: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        21: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        22: .line 756
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 23
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 752
      StackMap locals:
      StackMap stack:
            iload 8
            ireturn
        24: .line 753
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int int
      StackMap stack: java.lang.Throwable
            astore 7
        25: .line 754
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 5 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        26: .line 755
            iload 6 /* interruptible */
            ifeq 29
            aload 0 /* this */
            iload 4 /* n */
            ifle 27
            iconst_1
            goto 28
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        27: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        28: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        29: .line 756
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 30
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 30
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        30: .line 757
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        end local 6 // boolean interruptible
        end local 5 // int ti
        end local 4 // int n
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   31     0           this  Lsun/nio/ch/FileChannelImpl;
            0   31     1            dst  Ljava/nio/ByteBuffer;
            0   31     2       position  J
            2   31     4              n  I
            3   31     5             ti  I
            6   31     6  interruptible  Z
      Exception table:
        from    to  target  type
           6     9      24  any
          15    18      24  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      dst       
      position  

  public int write(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long position
         0: .line 761
            aload 1 /* src */
            ifnonnull 2
         1: .line 762
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 763
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 764
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 6
         5: .line 766
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         6: .line 767
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         7: .line 768
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.needsPositionLock:()Z
            ifeq 13
         8: .line 769
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         9: .line 770
            aload 0 /* this */
            aload 1 /* src */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.writeInternal:(Ljava/nio/ByteBuffer;J)I
            aload 4
            monitorexit
        10: ireturn
        11: .line 769
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        12: athrow
        13: .line 773
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.writeInternal:(Ljava/nio/ByteBuffer;J)I
            ireturn
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lsun/nio/ch/FileChannelImpl;
            0   14     1       src  Ljava/nio/ByteBuffer;
            0   14     2  position  J
      Exception table:
        from    to  target  type
           9    10      11  any
          11    12      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       
      position  

  private int writeInternal(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long position
         0: .line 778
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.needsPositionLock:()Z
            ifeq 1
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 779
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         2: .line 780
            iconst_m1
            istore 5 /* ti */
        start local 5 // int ti
         3: .line 782
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         4: .line 783
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 5 /* ti */
         5: .line 784
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         6: .line 791
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 5 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         7: .line 792
            aload 0 /* this */
            iload 4 /* n */
            ifle 8
            iconst_1
            goto 9
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int
      StackMap stack: sun.nio.ch.FileChannelImpl
         8: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
         9: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        10: .line 793
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 11
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 785
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        12: .line 787
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* src */
            lload 2 /* position */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;Ljava/nio/ByteBuffer;JLsun/nio/ch/NativeDispatcher;)I
            istore 4 /* n */
        13: .line 788
            iload 4 /* n */
            bipush -3
            if_icmpne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 789
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 7
        15: .line 791
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 5 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        16: .line 792
            aload 0 /* this */
            iload 4 /* n */
            ifle 17
            iconst_1
            goto 18
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl
        17: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        18: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        19: .line 793
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 20
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 789
      StackMap locals:
      StackMap stack:
            iload 7
            ireturn
        21: .line 790
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 791
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 5 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        23: .line 792
            aload 0 /* this */
            iload 4 /* n */
            ifle 24
            iconst_1
            goto 25
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        24: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl int
        25: invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        26: .line 793
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 27
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 27
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        27: .line 794
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        end local 5 // int ti
        end local 4 // int n
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lsun/nio/ch/FileChannelImpl;
            0   28     1       src  Ljava/nio/ByteBuffer;
            0   28     2  position  J
            2   28     4         n  I
            3   28     5        ti  I
      Exception table:
        from    to  target  type
           3     6      21  any
          12    15      21  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       
      position  

  private static void unmap(java.nio.MappedByteBuffer);
    descriptor: (Ljava/nio/MappedByteBuffer;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.nio.MappedByteBuffer bb
         0: .line 856
            aload 0 /* bb */
            checkcast sun.nio.ch.DirectBuffer
            invokeinterface sun.nio.ch.DirectBuffer.cleaner:()Ljdk/internal/ref/Cleaner;
            astore 1 /* cl */
        start local 1 // jdk.internal.ref.Cleaner cl
         1: .line 857
            aload 1 /* cl */
            ifnull 3
         2: .line 858
            aload 1 /* cl */
            invokevirtual jdk.internal.ref.Cleaner.clean:()V
         3: .line 859
      StackMap locals: jdk.internal.ref.Cleaner
      StackMap stack:
            return
        end local 1 // jdk.internal.ref.Cleaner cl
        end local 0 // java.nio.MappedByteBuffer bb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    bb  Ljava/nio/MappedByteBuffer;
            1    4     1    cl  Ljdk/internal/ref/Cleaner;
    MethodParameters:
      Name  Flags
      bb    

  public java.nio.MappedByteBuffer map(java.nio.channels.FileChannel$MapMode, long, long);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=21, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.channels.FileChannel$MapMode mode
        start local 2 // long position
        start local 4 // long size
         0: .line 868
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 869
            aload 1 /* mode */
            ifnonnull 3
         2: .line 870
            new java.lang.NullPointerException
            dup
            ldc "Mode is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 871
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 5
         4: .line 872
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 873
      StackMap locals:
      StackMap stack:
            lload 4 /* size */
            lconst_0
            lcmp
            ifge 7
         6: .line 874
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 875
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lload 4 /* size */
            ladd
            lconst_0
            lcmp
            ifge 9
         8: .line 876
            new java.lang.IllegalArgumentException
            dup
            ldc "Position + size overflow"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 877
      StackMap locals:
      StackMap stack:
            lload 4 /* size */
            ldc 2147483647
            lcmp
            ifle 11
        10: .line 878
            new java.lang.IllegalArgumentException
            dup
            ldc "Size exceeds Integer.MAX_VALUE"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 880
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 6 /* imode */
        start local 6 // int imode
        12: .line 881
            aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 14
        13: .line 882
            iconst_0
            istore 6 /* imode */
            goto 18
        14: .line 883
      StackMap locals: int
      StackMap stack:
            aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.READ_WRITE:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 16
        15: .line 884
            iconst_1
            istore 6 /* imode */
            goto 18
        16: .line 885
      StackMap locals:
      StackMap stack:
            aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.PRIVATE:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 18
        17: .line 886
            iconst_2
            istore 6 /* imode */
        18: .line 887
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 19
            iload 6 /* imode */
            ifge 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 888
      StackMap locals:
      StackMap stack:
            aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpeq 21
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 21
        20: .line 889
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
        21: .line 890
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 23
        22: .line 891
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
        23: .line 893
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 7 /* addr */
        start local 7 // long addr
        24: .line 894
            iconst_m1
            istore 9 /* ti */
        start local 9 // int ti
        25: .line 896
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
        26: .line 897
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 9 /* ti */
        27: .line 898
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 31
        28: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        29: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        30: .line 899
            aconst_null
            areturn
        31: .line 903
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 13
            monitorenter
        32: .line 906
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int long int top top top java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
            lstore 14 /* filesize */
        start local 14 // long filesize
        33: .line 907
            lload 14 /* filesize */
            ldc -3
            lcmp
            ifne 34
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 32
        34: .line 908
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 39
        35: .line 909
            aload 13
            monitorexit
        36: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        37: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        38: .line 909
            aconst_null
            areturn
        39: .line 911
      StackMap locals:
      StackMap stack:
            lload 14 /* filesize */
            lload 2 /* position */
            lload 4 /* size */
            ladd
            lcmp
            ifge 49
        40: .line 912
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 42
        41: .line 913
            new java.io.IOException
            dup
            ldc "Channel not open for writing - cannot extend file to required size"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 918
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            lload 2 /* position */
            lload 4 /* size */
            ladd
            invokevirtual sun.nio.ch.FileDispatcher.allocate:(Ljava/io/FileDescriptor;J)I
            istore 16 /* rv */
        start local 16 // int rv
        43: .line 919
            iload 16 /* rv */
            bipush -3
            if_icmpne 44
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 42
        44: .line 920
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 49
        45: .line 921
            aload 13
            monitorexit
        46: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        47: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        48: .line 921
            aconst_null
            areturn
        end local 16 // int rv
        49: .line 924
      StackMap locals:
      StackMap stack:
            lload 4 /* size */
            lconst_0
            lcmp
            ifne 61
        50: .line 925
            lconst_0
            lstore 7 /* addr */
        51: .line 927
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 16 /* dummy */
        start local 16 // java.io.FileDescriptor dummy
        52: .line 928
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifeq 53
            iload 6 /* imode */
            ifne 57
        53: .line 929
      StackMap locals: java.io.FileDescriptor
      StackMap stack:
            iconst_0
            lconst_0
            aload 16 /* dummy */
            aconst_null
            invokestatic sun.nio.ch.Util.newMappedByteBufferR:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;)Ljava/nio/MappedByteBuffer;
            astore 20
            aload 13
            monitorexit
        54: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        55: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        56: .line 929
            aload 20
            areturn
        57: .line 931
      StackMap locals:
      StackMap stack:
            iconst_0
            lconst_0
            aload 16 /* dummy */
            aconst_null
            invokestatic sun.nio.ch.Util.newMappedByteBuffer:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;)Ljava/nio/MappedByteBuffer;
            astore 20
            aload 13
            monitorexit
        58: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        59: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        60: .line 931
            aload 20
            areturn
        end local 16 // java.io.FileDescriptor dummy
        61: .line 934
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            getstatic sun.nio.ch.FileChannelImpl.allocationGranularity:J
            lrem
            l2i
            istore 12 /* pagePosition */
        start local 12 // int pagePosition
        62: .line 935
            lload 2 /* position */
            iload 12 /* pagePosition */
            i2l
            lsub
            lstore 16 /* mapPosition */
        start local 16 // long mapPosition
        63: .line 936
            lload 4 /* size */
            iload 12 /* pagePosition */
            i2l
            ladd
            lstore 10 /* mapSize */
        start local 10 // long mapSize
        64: .line 939
            aload 0 /* this */
            iload 6 /* imode */
            lload 16 /* mapPosition */
            lload 10 /* mapSize */
            invokevirtual sun.nio.ch.FileChannelImpl.map0:(IJJ)J
            lstore 7 /* addr */
        65: .line 940
            goto 76
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int long int long int java.lang.Object long long
      StackMap stack: java.lang.OutOfMemoryError
        66: pop
        67: .line 943
            invokestatic java.lang.System.gc:()V
        68: .line 945
            ldc 100
            invokestatic java.lang.Thread.sleep:(J)V
        69: .line 946
            goto 72
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        70: pop
        71: .line 947
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        72: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* imode */
            lload 16 /* mapPosition */
            lload 10 /* mapSize */
            invokevirtual sun.nio.ch.FileChannelImpl.map0:(IJJ)J
            lstore 7 /* addr */
        73: .line 951
            goto 76
      StackMap locals:
      StackMap stack: java.lang.OutOfMemoryError
        74: astore 18 /* y */
        start local 18 // java.lang.OutOfMemoryError y
        75: .line 953
            new java.io.IOException
            dup
            ldc "Map failed"
            aload 18 /* y */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 18 // java.lang.OutOfMemoryError y
        end local 16 // long mapPosition
        end local 14 // long filesize
        76: .line 903
      StackMap locals:
      StackMap stack:
            aload 13
            monitorexit
        77: goto 80
        end local 12 // int pagePosition
        end local 10 // long mapSize
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int long int top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        78: aload 13
            monitorexit
        79: athrow
        start local 10 // long mapSize
        start local 12 // int pagePosition
        80: .line 962
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int long int long int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual sun.nio.ch.FileDispatcher.duplicateForMapping:(Ljava/io/FileDescriptor;)Ljava/io/FileDescriptor;
            astore 13 /* mfd */
        start local 13 // java.io.FileDescriptor mfd
        81: .line 963
            goto 85
        end local 13 // java.io.FileDescriptor mfd
      StackMap locals:
      StackMap stack: java.io.IOException
        82: astore 14 /* ioe */
        start local 14 // java.io.IOException ioe
        83: .line 964
            lload 7 /* addr */
            lload 10 /* mapSize */
            invokestatic sun.nio.ch.FileChannelImpl.unmap0:(JJ)I
            pop
        84: .line 965
            aload 14 /* ioe */
            athrow
        end local 14 // java.io.IOException ioe
        start local 13 // java.io.FileDescriptor mfd
        85: .line 968
      StackMap locals: java.io.FileDescriptor
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 86
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            ifne 86
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        86: .line 969
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 87
            lload 7 /* addr */
            getstatic sun.nio.ch.FileChannelImpl.allocationGranularity:J
            lrem
            lconst_0
            lcmp
            ifeq 87
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        87: .line 970
      StackMap locals:
      StackMap stack:
            lload 4 /* size */
            l2i
            istore 14 /* isize */
        start local 14 // int isize
        88: .line 971
            new sun.nio.ch.FileChannelImpl$Unmapper
            dup
            lload 7 /* addr */
            lload 10 /* mapSize */
            iload 14 /* isize */
            aload 13 /* mfd */
            invokespecial sun.nio.ch.FileChannelImpl$Unmapper.<init>:(JJILjava/io/FileDescriptor;)V
            astore 15 /* um */
        start local 15 // sun.nio.ch.FileChannelImpl$Unmapper um
        89: .line 972
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifeq 90
            iload 6 /* imode */
            ifne 98
        90: .line 973
      StackMap locals: int sun.nio.ch.FileChannelImpl$Unmapper
      StackMap stack:
            iload 14 /* isize */
        91: .line 974
            lload 7 /* addr */
            iload 12 /* pagePosition */
            i2l
            ladd
        92: .line 975
            aload 13 /* mfd */
        93: .line 976
            aload 15 /* um */
        94: .line 973
            invokestatic sun.nio.ch.Util.newMappedByteBufferR:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;)Ljava/nio/MappedByteBuffer;
            astore 20
        95: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        96: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        97: .line 973
            aload 20
            areturn
        98: .line 978
      StackMap locals:
      StackMap stack:
            iload 14 /* isize */
        99: .line 979
            lload 7 /* addr */
            iload 12 /* pagePosition */
            i2l
            ladd
       100: .line 980
            aload 13 /* mfd */
       101: .line 981
            aload 15 /* um */
       102: .line 978
            invokestatic sun.nio.ch.Util.newMappedByteBuffer:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;)Ljava/nio/MappedByteBuffer;
            astore 20
       103: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
       104: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
       105: .line 978
            aload 20
            areturn
        end local 15 // sun.nio.ch.FileChannelImpl$Unmapper um
        end local 14 // int isize
        end local 13 // java.io.FileDescriptor mfd
        end local 12 // int pagePosition
        end local 10 // long mapSize
       106: .line 983
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int long int
      StackMap stack: java.lang.Throwable
            astore 19
       107: .line 984
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
       108: .line 985
            aload 0 /* this */
            lload 7 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
       109: .line 986
            aload 19
            athrow
        end local 9 // int ti
        end local 7 // long addr
        end local 6 // int imode
        end local 4 // long size
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel$MapMode mode
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  110     0          this  Lsun/nio/ch/FileChannelImpl;
            0  110     1          mode  Ljava/nio/channels/FileChannel$MapMode;
            0  110     2      position  J
            0  110     4          size  J
           12  110     6         imode  I
           24  110     7          addr  J
           25  110     9            ti  I
           64   78    10       mapSize  J
           80  106    10       mapSize  J
           62   78    12  pagePosition  I
           80  106    12  pagePosition  I
           33   76    14      filesize  J
           43   49    16            rv  I
           52   61    16         dummy  Ljava/io/FileDescriptor;
           63   76    16   mapPosition  J
           75   76    18             y  Ljava/lang/OutOfMemoryError;
           81   82    13           mfd  Ljava/io/FileDescriptor;
           85  106    13           mfd  Ljava/io/FileDescriptor;
           83   85    14           ioe  Ljava/io/IOException;
           88  106    14         isize  I
           89  106    15            um  Lsun/nio/ch/FileChannelImpl$Unmapper;
      Exception table:
        from    to  target  type
          64    65      66  Class java.lang.OutOfMemoryError
          68    69      70  Class java.lang.InterruptedException
          72    73      74  Class java.lang.OutOfMemoryError
          32    36      78  any
          39    46      78  any
          49    54      78  any
          57    58      78  any
          61    77      78  any
          78    79      78  any
          80    81      82  Class java.io.IOException
          25    28     106  any
          31    36     106  any
          39    46     106  any
          49    54     106  any
          57    58     106  any
          61    95     106  any
          98   103     106  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      mode      
      position  
      size      

  public static jdk.internal.misc.JavaNioAccess$BufferPool getMappedBufferPool();
    descriptor: ()Ljdk/internal/misc/JavaNioAccess$BufferPool;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 994
            new sun.nio.ch.FileChannelImpl$1
            dup
            invokespecial sun.nio.ch.FileChannelImpl$1.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean isSharedFileLockTable();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 1032
            getstatic sun.nio.ch.FileChannelImpl.propertyChecked:Z
            ifne 13
         1: .line 1033
            ldc Lsun/nio/ch/FileChannelImpl;
            dup
            astore 0
            monitorenter
         2: .line 1034
            getstatic sun.nio.ch.FileChannelImpl.propertyChecked:Z
            ifne 9
         3: .line 1036
            ldc "sun.nio.ch.disableSystemWideOverlappingFileLockCheck"
         4: .line 1035
            invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* value */
        start local 1 // java.lang.String value
         5: .line 1037
            aload 1 /* value */
            ifnull 6
            aload 1 /* value */
            ldc "false"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            iconst_0
            goto 7
      StackMap locals: java.lang.Class java.lang.String
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: putstatic sun.nio.ch.FileChannelImpl.isSharedFileLockTable:Z
         8: .line 1038
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.propertyChecked:Z
        end local 1 // java.lang.String value
         9: .line 1033
      StackMap locals:
      StackMap stack:
            aload 0
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 0
            monitorexit
        12: athrow
        13: .line 1042
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.isSharedFileLockTable:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            5    9     1  value  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    10      11  any
          11    12      11  any

  private sun.nio.ch.FileLockTable fileLockTable();
    descriptor: ()Lsun/nio/ch/FileLockTable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 1046
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 18
         1: .line 1047
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 1048
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 14
         3: .line 1049
            invokestatic sun.nio.ch.FileChannelImpl.isSharedFileLockTable:()Z
            ifeq 13
         4: .line 1050
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 2 /* ti */
        start local 2 // int ti
         5: .line 1052
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         6: .line 1053
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokestatic sun.nio.ch.FileLockTable.newSharedFileLockTable:(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)Lsun/nio/ch/FileLockTable;
            putfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
         7: .line 1054
            goto 11
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileChannelImpl int
      StackMap stack: java.lang.Throwable
         8: astore 3
         9: .line 1055
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 2 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        10: .line 1056
            aload 3
            athrow
        11: .line 1055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 2 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        end local 2 // int ti
        12: .line 1057
            goto 14
        13: .line 1058
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new sun.nio.ch.FileChannelImpl$SimpleFileLockTable
            dup
            invokespecial sun.nio.ch.FileChannelImpl$SimpleFileLockTable.<init>:()V
            putfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
        14: .line 1047
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 1
            monitorexit
        17: athrow
        18: .line 1063
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            areturn
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lsun/nio/ch/FileChannelImpl;
            5   12     2    ti  I
      Exception table:
        from    to  target  type
           5     8       8  any
           2    15      16  any
          16    17      16  any
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.FileLock lock(long, long, boolean);
    descriptor: (JJZ)Ljava/nio/channels/FileLock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=13, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
         0: .line 1069
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 1070
            iload 5 /* shared */
            ifeq 3
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 3
         2: .line 1071
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         3: .line 1072
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 5
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 1073
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 1074
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileLockImpl
            dup
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokespecial sun.nio.ch.FileLockImpl.<init>:(Ljava/nio/channels/FileChannel;JJZ)V
            astore 6 /* fli */
        start local 6 // sun.nio.ch.FileLockImpl fli
         6: .line 1075
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.fileLockTable:()Lsun/nio/ch/FileLockTable;
            astore 7 /* flt */
        start local 7 // sun.nio.ch.FileLockTable flt
         7: .line 1076
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.add:(Ljava/nio/channels/FileLock;)V
         8: .line 1077
            iconst_0
            istore 8 /* completed */
        start local 8 // boolean completed
         9: .line 1078
            iconst_m1
            istore 9 /* ti */
        start local 9 // int ti
        10: .line 1080
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
        11: .line 1081
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 9 /* ti */
        12: .line 1082
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 21
        13: .line 1099
            iload 8 /* completed */
            ifne 15
        14: .line 1100
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        15: .line 1101
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        16: .line 1103
            aload 0 /* this */
            iload 8 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        17: .line 1104
            goto 20
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedByInterruptException
        18: pop
        19: .line 1105
            new java.nio.channels.FileLockInterruptionException
            dup
            invokespecial java.nio.channels.FileLockInterruptionException.<init>:()V
            athrow
        20: .line 1083
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        21: .line 1086
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            iconst_1
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokevirtual sun.nio.ch.FileDispatcher.lock:(Ljava/io/FileDescriptor;ZJJZ)I
            istore 10 /* n */
        start local 10 // int n
        22: .line 1087
            iload 10 /* n */
            iconst_2
            if_icmpne 23
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 21
        23: .line 1088
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifeq 42
        24: .line 1089
            iload 10 /* n */
            iconst_1
            if_icmpne 31
        25: .line 1090
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 26
            iload 5 /* shared */
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 1091
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileLockImpl
            dup
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
        27: .line 1092
            iconst_0
        28: .line 1091
            invokespecial sun.nio.ch.FileLockImpl.<init>:(Ljava/nio/channels/FileChannel;JJZ)V
            astore 11 /* fli2 */
        start local 11 // sun.nio.ch.FileLockImpl fli2
        29: .line 1093
            aload 7 /* flt */
            aload 6 /* fli */
            aload 11 /* fli2 */
            invokevirtual sun.nio.ch.FileLockTable.replace:(Ljava/nio/channels/FileLock;Ljava/nio/channels/FileLock;)V
        30: .line 1094
            aload 11 /* fli2 */
            astore 6 /* fli */
        end local 11 // sun.nio.ch.FileLockImpl fli2
        31: .line 1096
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* completed */
        end local 10 // int n
        32: .line 1098
            goto 42
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable int int
      StackMap stack: java.lang.Throwable
        33: astore 12
        34: .line 1099
            iload 8 /* completed */
            ifne 36
        35: .line 1100
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        36: .line 1101
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable int int top top java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        37: .line 1103
            aload 0 /* this */
            iload 8 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        38: .line 1104
            goto 41
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedByInterruptException
        39: pop
        40: .line 1105
            new java.nio.channels.FileLockInterruptionException
            dup
            invokespecial java.nio.channels.FileLockInterruptionException.<init>:()V
            athrow
        41: .line 1107
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        42: .line 1099
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable int int
      StackMap stack:
            iload 8 /* completed */
            ifne 44
        43: .line 1100
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        44: .line 1101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        45: .line 1103
            aload 0 /* this */
            iload 8 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
        46: .line 1104
            goto 49
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedByInterruptException
        47: pop
        48: .line 1105
            new java.nio.channels.FileLockInterruptionException
            dup
            invokespecial java.nio.channels.FileLockInterruptionException.<init>:()V
            athrow
        49: .line 1108
      StackMap locals:
      StackMap stack:
            aload 6 /* fli */
            areturn
        end local 9 // int ti
        end local 8 // boolean completed
        end local 7 // sun.nio.ch.FileLockTable flt
        end local 6 // sun.nio.ch.FileLockImpl fli
        end local 5 // boolean shared
        end local 3 // long size
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   50     0       this  Lsun/nio/ch/FileChannelImpl;
            0   50     1   position  J
            0   50     3       size  J
            0   50     5     shared  Z
            6   50     6        fli  Lsun/nio/ch/FileLockImpl;
            7   50     7        flt  Lsun/nio/ch/FileLockTable;
            9   50     8  completed  Z
           10   50     9         ti  I
           22   32    10          n  I
           29   31    11       fli2  Lsun/nio/ch/FileLockImpl;
      Exception table:
        from    to  target  type
          16    17      18  Class java.nio.channels.ClosedByInterruptException
          10    13      33  any
          21    33      33  any
          37    38      39  Class java.nio.channels.ClosedByInterruptException
          45    46      47  Class java.nio.channels.ClosedByInterruptException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      size      
      shared    

  public java.nio.channels.FileLock tryLock(long, long, boolean);
    descriptor: (JJZ)Ljava/nio/channels/FileLock;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=13, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
         0: .line 1114
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 1115
            iload 5 /* shared */
            ifeq 3
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 3
         2: .line 1116
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         3: .line 1117
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 5
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 1118
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 1119
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileLockImpl
            dup
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokespecial sun.nio.ch.FileLockImpl.<init>:(Ljava/nio/channels/FileChannel;JJZ)V
            astore 6 /* fli */
        start local 6 // sun.nio.ch.FileLockImpl fli
         6: .line 1120
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.fileLockTable:()Lsun/nio/ch/FileLockTable;
            astore 7 /* flt */
        start local 7 // sun.nio.ch.FileLockTable flt
         7: .line 1121
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.add:(Ljava/nio/channels/FileLock;)V
         8: .line 1124
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 9 /* ti */
        start local 9 // int ti
         9: .line 1127
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
        10: .line 1128
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            iconst_0
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            invokevirtual sun.nio.ch.FileDispatcher.lock:(Ljava/io/FileDescriptor;ZJJZ)I
            istore 8 /* result */
        start local 8 // int result
        11: .line 1129
            goto 15
        end local 8 // int result
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable top int
      StackMap stack: java.io.IOException
        12: astore 10 /* e */
        start local 10 // java.io.IOException e
        13: .line 1130
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        14: .line 1131
            aload 10 /* e */
            athrow
        end local 10 // java.io.IOException e
        start local 8 // int result
        15: .line 1133
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable int int
      StackMap stack:
            iload 8 /* result */
            iconst_m1
            if_icmpne 19
        16: .line 1134
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        17: .line 1146
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        18: .line 1135
            aconst_null
            areturn
        19: .line 1137
      StackMap locals:
      StackMap stack:
            iload 8 /* result */
            iconst_1
            if_icmpne 28
        20: .line 1138
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 21
            iload 5 /* shared */
            ifne 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 1139
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileLockImpl
            dup
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
        22: .line 1140
            iconst_0
        23: .line 1139
            invokespecial sun.nio.ch.FileLockImpl.<init>:(Ljava/nio/channels/FileChannel;JJZ)V
            astore 10 /* fli2 */
        start local 10 // sun.nio.ch.FileLockImpl fli2
        24: .line 1141
            aload 7 /* flt */
            aload 6 /* fli */
            aload 10 /* fli2 */
            invokevirtual sun.nio.ch.FileLockTable.replace:(Ljava/nio/channels/FileLock;Ljava/nio/channels/FileLock;)V
        25: .line 1142
            aload 10 /* fli2 */
            astore 12
        26: .line 1146
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        27: .line 1142
            aload 12
            areturn
        end local 10 // sun.nio.ch.FileLockImpl fli2
        28: .line 1144
      StackMap locals:
      StackMap stack:
            aload 6 /* fli */
            astore 12
        29: .line 1146
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        30: .line 1144
            aload 12
            areturn
        end local 8 // int result
        31: .line 1145
      StackMap locals: sun.nio.ch.FileChannelImpl long long int sun.nio.ch.FileLockImpl sun.nio.ch.FileLockTable top int
      StackMap stack: java.lang.Throwable
            astore 11
        32: .line 1146
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 9 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        33: .line 1147
            aload 11
            athrow
        end local 9 // int ti
        end local 7 // sun.nio.ch.FileLockTable flt
        end local 6 // sun.nio.ch.FileLockImpl fli
        end local 5 // boolean shared
        end local 3 // long size
        end local 1 // long position
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Lsun/nio/ch/FileChannelImpl;
            0   34     1  position  J
            0   34     3      size  J
            0   34     5    shared  Z
            6   34     6       fli  Lsun/nio/ch/FileLockImpl;
            7   34     7       flt  Lsun/nio/ch/FileLockTable;
           11   12     8    result  I
           15   31     8    result  I
            9   34     9        ti  I
           13   15    10         e  Ljava/io/IOException;
           24   28    10      fli2  Lsun/nio/ch/FileLockImpl;
      Exception table:
        from    to  target  type
           9    11      12  Class java.io.IOException
           9    17      31  any
          19    26      31  any
          28    29      31  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  
      size      
      shared    

  void release(sun.nio.ch.FileLockImpl);
    descriptor: (Lsun/nio/ch/FileLockImpl;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // sun.nio.ch.FileLockImpl fli
         0: .line 1151
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 2 /* ti */
        start local 2 // int ti
         1: .line 1153
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         2: .line 1154
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            aload 1 /* fli */
            invokevirtual sun.nio.ch.FileLockImpl.position:()J
            aload 1 /* fli */
            invokevirtual sun.nio.ch.FileLockImpl.size:()J
            invokevirtual sun.nio.ch.FileDispatcher.release:(Ljava/io/FileDescriptor;JJ)V
         3: .line 1155
            goto 7
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileLockImpl int
      StackMap stack: java.lang.Throwable
         4: astore 3
         5: .line 1156
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 2 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         6: .line 1157
            aload 3
            athrow
         7: .line 1156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 2 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         8: .line 1158
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 9
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 1159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            aload 1 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        10: .line 1160
            return
        end local 2 // int ti
        end local 1 // sun.nio.ch.FileLockImpl fli
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/nio/ch/FileChannelImpl;
            0   11     1   fli  Lsun/nio/ch/FileLockImpl;
            1   11     2    ti  I
      Exception table:
        from    to  target  type
           1     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fli   

  private native long map0(int, long, long);
    descriptor: (IJJ)J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      prot      
      position  
      length    

  private static native int unmap0(long, long);
    descriptor: (JJ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      address  
      length   

  private native long transferTo0(java.io.FileDescriptor, long, long, java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;JJLjava/io/FileDescriptor;)J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
          Name  Flags
      src       
      position  
      count     
      dst       

  private native long position0(java.io.FileDescriptor, long);
    descriptor: (Ljava/io/FileDescriptor;J)J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
        Name  Flags
      fd      
      offset  

  private static native long initIDs();
    descriptor: ()J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  public java.nio.channels.SeekableByteChannel position(long);
    descriptor: (J)Ljava/nio/channels/SeekableByteChannel;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 1
            aload 0
            lload 1
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.SeekableByteChannel truncate(long);
    descriptor: (J)Ljava/nio/channels/SeekableByteChannel;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 1
            aload 0
            lload 1
            invokevirtual sun.nio.ch.FileChannelImpl.truncate:(J)Ljava/nio/channels/FileChannel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.io.IOException
}
SourceFile: "FileChannelImpl.java"
NestMembers:
  sun.nio.ch.FileChannelImpl$1  sun.nio.ch.FileChannelImpl$SimpleFileLockTable  sun.nio.ch.FileChannelImpl$Unmapper
InnerClasses:
  public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel
  public abstract BufferPool = jdk.internal.misc.JavaNioAccess$BufferPool of jdk.internal.misc.JavaNioAccess
  sun.nio.ch.FileChannelImpl$1
  private SimpleFileLockTable = sun.nio.ch.FileChannelImpl$SimpleFileLockTable of sun.nio.ch.FileChannelImpl
  private Unmapper = sun.nio.ch.FileChannelImpl$Unmapper of sun.nio.ch.FileChannelImpl