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.access.JavaIOFileDescriptorAccess fdAccess;
    descriptor: Ljdk/internal/access/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 final boolean direct;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int alignment;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ref.Cleaner$Cleanable closer;
    descriptor: Ljava/lang/ref/Cleaner$Cleanable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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_INVALID;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  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

  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 58
            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 66
            invokestatic jdk.internal.access.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/access/JavaIOFileDescriptorAccess;
         4: .line 65
            putstatic sun.nio.ch.FileChannelImpl.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
         5: .line 479
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.transferSupported:Z
         6: .line 484
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.pipeSupported:Z
         7: .line 489
            iconst_1
            putstatic sun.nio.ch.FileChannelImpl.fileSupported:Z
         8: .line 1344
            invokestatic sun.nio.ch.IOUtil.load:()V
         9: .line 1345
            invokestatic sun.nio.ch.FileChannelImpl.initIDs:()J
            putstatic sun.nio.ch.FileChannelImpl.allocationGranularity:J
        10: .line 1346
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.io.FileDescriptor, java.lang.String, boolean, boolean, boolean, java.lang.Object);
    descriptor: (Ljava/io/FileDescriptor;Ljava/lang/String;ZZZLjava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=7
        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 // boolean direct
        start local 6 // java.lang.Object parent
         0: .line 120
            aload 0 /* this */
            invokespecial java.nio.channels.FileChannel.<init>:()V
         1: .line 86
            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 89
            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 123
            aload 0 /* this */
            aload 1 /* fd */
            putfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
         4: .line 124
            aload 0 /* this */
            iload 3 /* readable */
            putfield sun.nio.ch.FileChannelImpl.readable:Z
         5: .line 125
            aload 0 /* this */
            iload 4 /* writable */
            putfield sun.nio.ch.FileChannelImpl.writable:Z
         6: .line 126
            aload 0 /* this */
            aload 6 /* parent */
            putfield sun.nio.ch.FileChannelImpl.parent:Ljava/lang/Object;
         7: .line 127
            aload 0 /* this */
            aload 2 /* path */
            putfield sun.nio.ch.FileChannelImpl.path:Ljava/lang/String;
         8: .line 128
            aload 0 /* this */
            iload 5 /* direct */
            putfield sun.nio.ch.FileChannelImpl.direct:Z
         9: .line 129
            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;
        10: .line 130
            iload 5 /* direct */
            ifeq 14
        11: .line 131
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 12
            aload 2 /* path */
            ifnonnull 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 132
      StackMap locals: sun.nio.ch.FileChannelImpl java.io.FileDescriptor java.lang.String int int int java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 1 /* fd */
            aload 2 /* path */
            invokevirtual sun.nio.ch.FileDispatcher.setDirectIO:(Ljava/io/FileDescriptor;Ljava/lang/String;)I
            putfield sun.nio.ch.FileChannelImpl.alignment:I
        13: .line 133
            goto 15
        14: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_m1
            putfield sun.nio.ch.FileChannelImpl.alignment:I
        15: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* parent */
            ifnull 16
            aconst_null
            goto 17
        16: .line 142
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl
            invokestatic jdk.internal.ref.CleanerFactory.cleaner:()Ljava/lang/ref/Cleaner;
            aload 0 /* this */
            new sun.nio.ch.FileChannelImpl$Closer
            dup
            aload 1 /* fd */
            invokespecial sun.nio.ch.FileChannelImpl$Closer.<init>:(Ljava/io/FileDescriptor;)V
            invokevirtual java.lang.ref.Cleaner.register:(Ljava/lang/Object;Ljava/lang/Runnable;)Ljava/lang/ref/Cleaner$Cleanable;
        17: .line 141
      StackMap locals: sun.nio.ch.FileChannelImpl java.io.FileDescriptor java.lang.String int int int java.lang.Object
      StackMap stack: sun.nio.ch.FileChannelImpl java.lang.ref.Cleaner$Cleanable
            putfield sun.nio.ch.FileChannelImpl.closer:Ljava/lang/ref/Cleaner$Cleanable;
        18: .line 143
            return
        end local 6 // java.lang.Object parent
        end local 5 // boolean direct
        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   19     0      this  Lsun/nio/ch/FileChannelImpl;
            0   19     1        fd  Ljava/io/FileDescriptor;
            0   19     2      path  Ljava/lang/String;
            0   19     3  readable  Z
            0   19     4  writable  Z
            0   19     5    direct  Z
            0   19     6    parent  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      fd        
      path      
      readable  
      writable  
      direct    
      parent    

  public static java.nio.channels.FileChannel open(java.io.FileDescriptor, java.lang.String, boolean, boolean, boolean, java.lang.Object);
    descriptor: (Ljava/io/FileDescriptor;Ljava/lang/String;ZZZLjava/lang/Object;)Ljava/nio/channels/FileChannel;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        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 // boolean direct
        start local 5 // java.lang.Object parent
         0: .line 151
            new sun.nio.ch.FileChannelImpl
            dup
            aload 0 /* fd */
            aload 1 /* path */
            iload 2 /* readable */
            iload 3 /* writable */
            iload 4 /* direct */
            aload 5 /* parent */
            invokespecial sun.nio.ch.FileChannelImpl.<init>:(Ljava/io/FileDescriptor;Ljava/lang/String;ZZZLjava/lang/Object;)V
            areturn
        end local 5 // java.lang.Object parent
        end local 4 // boolean direct
        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    direct  Z
            0    1     5    parent  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      fd        
      path      
      readable  
      writable  
      direct    
      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 155
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 2
         1: .line 156
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         2: .line 157
      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 160
            aload 0 /* this */
            iconst_1
            putfield sun.nio.ch.FileChannelImpl.uninterruptible:Z
         1: .line 161
            return
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/FileChannelImpl;

  private void beginBlocking();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 164
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.uninterruptible:Z
            ifne 1
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.begin:()V
         1: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/FileChannelImpl;

  private void endBlocking(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // boolean completed
         0: .line 168
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.uninterruptible:Z
            ifne 1
            aload 0 /* this */
            iload 1 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.end:(Z)V
         1: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completed
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lsun/nio/ch/FileChannelImpl;
            0    2     1  completed  Z
    Exceptions:
      throws java.nio.channels.AsynchronousCloseException
    MethodParameters:
           Name  Flags
      completed  

  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 174
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokevirtual java.io.FileDescriptor.valid:()Z
            ifne 2
         1: .line 175
            return
         2: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnull 14
         3: .line 179
            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 180
            aload 1 /* fl */
            dup
            astore 3
            monitorenter
         6: .line 181
            aload 1 /* fl */
            invokevirtual java.nio.channels.FileLock.isValid:()Z
            ifeq 9
         7: .line 182
            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 183
            aload 1 /* fl */
            checkcast sun.nio.ch.FileLockImpl
            invokevirtual sun.nio.ch.FileLockImpl.invalidate:()V
         9: .line 180
      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 179
      StackMap locals: sun.nio.ch.FileChannelImpl top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 190
      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 192
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.parent:Ljava/lang/Object;
            ifnull 18
        16: .line 199
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.parent:Ljava/lang/Object;
            checkcast java.io.Closeable
            invokeinterface java.io.Closeable.close:()V
        17: .line 200
            goto 24
      StackMap locals:
      StackMap stack:
        18: aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.closer:Ljava/lang/ref/Cleaner$Cleanable;
            ifnull 23
        19: .line 204
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.closer:Ljava/lang/ref/Cleaner$Cleanable;
            invokeinterface java.lang.ref.Cleaner$Cleanable.clean:()V
        20: .line 205
            goto 24
      StackMap locals:
      StackMap stack: java.io.UncheckedIOException
        21: astore 1 /* uioe */
        start local 1 // java.io.UncheckedIOException uioe
        22: .line 206
            aload 1 /* uioe */
            invokevirtual java.io.UncheckedIOException.getCause:()Ljava/io/IOException;
            athrow
        end local 1 // java.io.UncheckedIOException uioe
        23: .line 209
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.access.JavaIOFileDescriptorAccess.close:(Ljava/io/FileDescriptor;)V
        24: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   25     0  this  Lsun/nio/ch/FileChannelImpl;
            5   13     1    fl  Ljava/nio/channels/FileLock;
           22   23     1  uioe  Ljava/io/UncheckedIOException;
      Exception table:
        from    to  target  type
           6    10      11  any
          11    12      11  any
          19    20      21  Class java.io.UncheckedIOException
    Exceptions:
      throws java.io.IOException

  public int read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 215
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 216
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 3
         2: .line 217
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         3: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 219
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            ifeq 6
         5: .line 220
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            invokestatic sun.nio.ch.Util.checkChannelPositionAligned:(JI)V
         6: .line 221
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         7: .line 222
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         8: .line 224
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         9: .line 225
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 4 /* ti */
        10: .line 226
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        11: .line 233
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        12: .line 234
            aload 0 /* this */
            iload 3 /* n */
            ifle 13
            iconst_1
            goto 14
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl
        13: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        14: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        15: .line 235
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 16
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        16: aload 2
            monitorexit
        17: .line 227
            iconst_0
            ireturn
        18: .line 229
      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.direct:Z
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            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;JZILsun/nio/ch/NativeDispatcher;)I
            istore 3 /* n */
        19: .line 230
            iload 3 /* n */
            bipush -3
            if_icmpne 20
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        20: .line 231
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 6
        21: .line 233
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        22: .line 234
            aload 0 /* this */
            iload 3 /* n */
            ifle 23
            iconst_1
            goto 24
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl
        23: 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
        24: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        25: .line 235
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 26
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 231
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        27: iload 6
            ireturn
        28: .line 232
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: java.lang.Throwable
            astore 5
        29: .line 233
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        30: .line 234
            aload 0 /* this */
            iload 3 /* n */
            ifle 31
            iconst_1
            goto 32
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        31: 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
        32: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        33: .line 235
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 34
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 34
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        34: .line 236
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        end local 4 // int ti
        end local 3 // int n
        35: .line 218
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        36: athrow
        end local 1 // java.nio.ByteBuffer dst
        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   dst  Ljava/nio/ByteBuffer;
            7   35     3     n  I
            8   35     4    ti  I
      Exception table:
        from    to  target  type
           8    11      28  any
          18    21      28  any
           4    17      35  any
          18    27      35  any
          28    36      35  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=7, 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 243
            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 244
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         2: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         3: .line 246
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 5
         4: .line 247
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         5: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         6: .line 249
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            ifeq 8
         7: .line 250
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            invokestatic sun.nio.ch.Util.checkChannelPositionAligned:(JI)V
         8: .line 251
      StackMap locals: java.lang.Object
      StackMap stack:
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
         9: .line 252
            iconst_m1
            istore 7 /* ti */
        start local 7 // int ti
        10: .line 254
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
        11: .line 255
            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 256
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        13: .line 264
            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 265
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
        15: 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
        16: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        17: .line 266
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 18
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        18: aload 4
            monitorexit
        19: .line 257
            lconst_0
            lreturn
        20: .line 259
      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 */
        21: .line 260
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
        22: .line 259
            invokestatic sun.nio.ch.IOUtil.read:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IIZILsun/nio/ch/NativeDispatcher;)J
            lstore 5 /* n */
        23: .line 261
            lload 5 /* n */
            ldc -3
            lcmp
            ifne 24
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        24: .line 262
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 9
        25: .line 264
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        26: .line 265
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 27
            iconst_1
            goto 28
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        27: 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
        28: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        29: .line 266
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 30
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 30
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        30: .line 262
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        31: lload 9
            lreturn
        32: .line 263
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 8
        33: .line 264
            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 265
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 35
            iconst_1
            goto 36
      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
        35: 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
        36: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        37: .line 266
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 38
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 267
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        end local 7 // int ti
        end local 5 // long n
        39: .line 248
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        40: 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   41     0    this  Lsun/nio/ch/FileChannelImpl;
            0   41     1    dsts  [Ljava/nio/ByteBuffer;
            0   41     2  offset  I
            0   41     3  length  I
            9   39     5       n  J
           10   39     7      ti  I
      Exception table:
        from    to  target  type
          10    13      32  any
          20    25      32  any
           6    19      39  any
          20    31      39  any
          32    40      39  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=7, locals=7, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
         0: .line 272
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 273
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 3
         2: .line 274
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         3: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 276
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            ifeq 6
         5: .line 277
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            invokestatic sun.nio.ch.Util.checkChannelPositionAligned:(JI)V
         6: .line 278
      StackMap locals: java.lang.Object
      StackMap stack:
            iconst_0
            istore 3 /* n */
        start local 3 // int n
         7: .line 279
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         8: .line 281
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         9: .line 282
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 4 /* ti */
        10: .line 283
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        11: .line 290
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        12: .line 291
            aload 0 /* this */
            iload 3 /* n */
            ifle 13
            iconst_1
            goto 14
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl
        13: iconst_0
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: sun.nio.ch.FileChannelImpl int
        14: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        15: .line 292
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 16
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        16: aload 2
            monitorexit
        17: .line 284
            iconst_0
            ireturn
        18: .line 286
      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.direct:Z
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            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;JZILsun/nio/ch/NativeDispatcher;)I
            istore 3 /* n */
        19: .line 287
            iload 3 /* n */
            bipush -3
            if_icmpne 20
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        20: .line 288
      StackMap locals:
      StackMap stack:
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 6
        21: .line 290
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        22: .line 291
            aload 0 /* this */
            iload 3 /* n */
            ifle 23
            iconst_1
            goto 24
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int top int
      StackMap stack: sun.nio.ch.FileChannelImpl
        23: 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
        24: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        25: .line 292
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 26
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 26
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        26: .line 288
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        27: iload 6
            ireturn
        28: .line 289
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int
      StackMap stack: java.lang.Throwable
            astore 5
        29: .line 290
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 4 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        30: .line 291
            aload 0 /* this */
            iload 3 /* n */
            ifle 31
            iconst_1
            goto 32
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object int int java.lang.Throwable
      StackMap stack: sun.nio.ch.FileChannelImpl
        31: 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
        32: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        33: .line 292
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 34
            iload 3 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(I)Z
            ifne 34
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        34: .line 293
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        end local 4 // int ti
        end local 3 // int n
        35: .line 275
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        36: athrow
        end local 1 // java.nio.ByteBuffer src
        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   src  Ljava/nio/ByteBuffer;
            7   35     3     n  I
            8   35     4    ti  I
      Exception table:
        from    to  target  type
           8    11      28  any
          18    21      28  any
           4    17      35  any
          18    27      35  any
          28    36      35  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=7, 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 300
            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 301
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         2: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         3: .line 303
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 304
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         6: .line 306
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            ifeq 8
         7: .line 307
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            invokestatic sun.nio.ch.Util.checkChannelPositionAligned:(JI)V
         8: .line 308
      StackMap locals: java.lang.Object
      StackMap stack:
            lconst_0
            lstore 5 /* n */
        start local 5 // long n
         9: .line 309
            iconst_m1
            istore 7 /* ti */
        start local 7 // int ti
        10: .line 311
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
        11: .line 312
            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 313
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        13: .line 321
            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 322
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 15
            iconst_1
            goto 16
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: sun.nio.ch.FileChannelImpl
        15: 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
        16: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        17: .line 323
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 18
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
      StackMap locals:
      StackMap stack:
        18: aload 4
            monitorexit
        19: .line 314
            lconst_0
            lreturn
        20: .line 316
      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 */
        21: .line 317
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
        22: .line 316
            invokestatic sun.nio.ch.IOUtil.write:(Ljava/io/FileDescriptor;[Ljava/nio/ByteBuffer;IIZILsun/nio/ch/NativeDispatcher;)J
            lstore 5 /* n */
        23: .line 318
            lload 5 /* n */
            ldc -3
            lcmp
            ifne 24
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        24: .line 319
      StackMap locals:
      StackMap stack:
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 9
        25: .line 321
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 7 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        26: .line 322
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 27
            iconst_1
            goto 28
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int top long
      StackMap stack: sun.nio.ch.FileChannelImpl
        27: 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
        28: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        29: .line 323
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 30
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 30
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        30: .line 319
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        31: lload 9
            lreturn
        32: .line 320
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 8
        33: .line 321
            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 322
            aload 0 /* this */
            lload 5 /* n */
            lconst_0
            lcmp
            ifle 35
            iconst_1
            goto 36
      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
        35: 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
        36: invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        37: .line 323
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 38
            lload 5 /* n */
            invokestatic sun.nio.ch.IOStatus.check:(J)Z
            ifne 38
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        38: .line 324
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        end local 7 // int ti
        end local 5 // long n
        39: .line 305
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        40: 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   41     0    this  Lsun/nio/ch/FileChannelImpl;
            0   41     1    srcs  [Ljava/nio/ByteBuffer;
            0   41     2  offset  I
            0   41     3  length  I
            9   39     5       n  J
           10   39     7      ti  I
      Exception table:
        from    to  target  type
          10    13      32  any
          20    25      32  any
           6    19      39  any
          20    31      39  any
          32    40      39  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 331
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 332
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 333
            ldc -1
            lstore 2 /* p */
        start local 2 // long p
         3: .line 334
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         4: .line 336
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         5: .line 337
            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 338
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 14
         7: .line 347
            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 348
            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.endBlocking:(Z)V
        11: .line 349
            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 339
            lconst_0
            lreturn
        14: .line 340
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokeinterface jdk.internal.access.JavaIOFileDescriptorAccess.getAppend:(Ljava/io/FileDescriptor;)Z
            istore 5 /* append */
        start local 5 // boolean append
        15: .line 343
      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 */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            ldc -1
            invokevirtual sun.nio.ch.FileDispatcher.seek:(Ljava/io/FileDescriptor;J)J
      StackMap locals:
      StackMap stack: long
        17: lstore 2 /* p */
        18: .line 344
            lload 2 /* p */
            ldc -3
            lcmp
            ifne 19
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 15
        19: .line 345
      StackMap locals:
      StackMap stack:
            lload 2 /* p */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 7
        20: .line 347
            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 348
            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.endBlocking:(Z)V
        24: .line 349
            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 345
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        26: lload 7
            lreturn
        end local 5 // boolean append
        27: .line 346
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 6
        28: .line 347
            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 348
            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.endBlocking:(Z)V
        32: .line 349
            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 350
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        end local 4 // int ti
        end local 2 // long p
        34: .line 332
      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 355
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 356
            lload 1 /* newPosition */
            lconst_0
            lcmp
            ifge 3
         2: .line 357
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         3: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         4: .line 359
            ldc -1
            lstore 4 /* p */
        start local 4 // long p
         5: .line 360
            iconst_m1
            istore 6 /* ti */
        start local 6 // int ti
         6: .line 362
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         7: .line 363
            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 364
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
         9: .line 371
            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 372
            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.endBlocking:(Z)V
        13: .line 373
            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 365
            aconst_null
            areturn
        16: .line 367
      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 /* newPosition */
            invokevirtual sun.nio.ch.FileDispatcher.seek:(Ljava/io/FileDescriptor;J)J
            lstore 4 /* p */
        17: .line 368
            lload 4 /* p */
            ldc -3
            lcmp
            ifne 18
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 16
        18: .line 369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 8
        19: .line 371
            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 372
            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.endBlocking:(Z)V
        23: .line 373
            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 369
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        25: aload 8
            areturn
        26: .line 370
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 7
        27: .line 371
            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 372
            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.endBlocking:(Z)V
        31: .line 373
            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 374
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        end local 6 // int ti
        end local 4 // long p
        33: .line 358
      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 379
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 380
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 381
            ldc -1
            lstore 2 /* s */
        start local 2 // long s
         3: .line 382
            iconst_m1
            istore 4 /* ti */
        start local 4 // int ti
         4: .line 384
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         5: .line 385
            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 386
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 14
         7: .line 393
            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 394
            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.endBlocking:(Z)V
        11: .line 395
            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 387
            ldc -1
            lreturn
        14: .line 389
      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 390
            lload 2 /* s */
            ldc -3
            lcmp
            ifne 16
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 14
        16: .line 391
      StackMap locals:
      StackMap stack:
            lload 2 /* s */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 6
        17: .line 393
            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 394
            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.endBlocking:(Z)V
        21: .line 395
            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 391
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        23: lload 6
            lreturn
        24: .line 392
      StackMap locals: sun.nio.ch.FileChannelImpl java.lang.Object long int
      StackMap stack: java.lang.Throwable
            astore 5
        25: .line 393
            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 394
            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.endBlocking:(Z)V
        29: .line 395
            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 396
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        end local 4 // int ti
        end local 2 // long s
        31: .line 380
      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 401
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 402
            lload 1 /* newSize */
            lconst_0
            lcmp
            ifge 3
         2: .line 403
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 405
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         6: .line 407
            iconst_m1
            istore 4 /* rv */
        start local 4 // int rv
         7: .line 408
            ldc -1
            lstore 5 /* p */
        start local 5 // long p
         8: .line 409
            iconst_m1
            istore 7 /* ti */
        start local 7 // int ti
         9: .line 410
            ldc -1
            lstore 8 /* rp */
        start local 8 // long rp
        10: .line 412
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
        11: .line 413
            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 414
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        13: .line 450
            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 451
            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.endBlocking:(Z)V
        17: .line 452
            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 415
            aconst_null
            areturn
        20: .line 420
      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 421
            lload 10 /* size */
            ldc -3
            lcmp
            ifne 22
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 20
        22: .line 422
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 30
        23: .line 450
            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 451
            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.endBlocking:(Z)V
        27: .line 452
            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 423
            aconst_null
            areturn
        30: .line 427
      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;
            ldc -1
            invokevirtual sun.nio.ch.FileDispatcher.seek:(Ljava/io/FileDescriptor;J)J
            lstore 5 /* p */
        31: .line 428
            lload 5 /* p */
            ldc -3
            lcmp
            ifne 32
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 30
        32: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 40
        33: .line 450
            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 451
            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.endBlocking:(Z)V
        37: .line 452
            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 430
            aconst_null
            areturn
        40: .line 431
      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 434
      StackMap locals:
      StackMap stack:
            lload 1 /* newSize */
            lload 10 /* size */
            lcmp
            ifge 52
        42: .line 436
      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 437
            iload 4 /* rv */
            bipush -3
            if_icmpne 44
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 42
        44: .line 438
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 52
        45: .line 450
            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 451
            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.endBlocking:(Z)V
        49: .line 452
            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 439
            aconst_null
            areturn
        52: .line 443
      StackMap locals:
      StackMap stack:
            lload 5 /* p */
            lload 1 /* newSize */
            lcmp
            ifle 54
        53: .line 444
            lload 1 /* newSize */
            lstore 5 /* p */
        54: .line 446
      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 5 /* p */
            invokevirtual sun.nio.ch.FileDispatcher.seek:(Ljava/io/FileDescriptor;J)J
            lstore 8 /* rp */
        55: .line 447
            lload 8 /* rp */
            ldc -3
            lcmp
            ifne 56
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 54
        56: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 13
        57: .line 450
            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 451
            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.endBlocking:(Z)V
        61: .line 452
            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 448
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        63: aload 13
            areturn
        end local 10 // long size
        64: .line 449
      StackMap locals: sun.nio.ch.FileChannelImpl long java.lang.Object int long int long
      StackMap stack: java.lang.Throwable
            astore 12
        65: .line 450
            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 451
            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.endBlocking:(Z)V
        69: .line 452
            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 453
      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 406
      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 458
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 459
            iconst_m1
            istore 2 /* rv */
        start local 2 // int rv
         2: .line 460
            iconst_m1
            istore 3 /* ti */
        start local 3 // int ti
         3: .line 462
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         4: .line 463
            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 464
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         6: .line 470
            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 471
            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.endBlocking:(Z)V
        10: .line 472
            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 465
      StackMap locals:
      StackMap stack:
            return
        12: .line 467
      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 468
            iload 2 /* rv */
            bipush -3
            if_icmpne 22
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 469
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: astore 4
        16: .line 470
            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 471
            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.endBlocking:(Z)V
        20: .line 472
            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 473
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        22: .line 470
      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 471
            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.endBlocking:(Z)V
        26: .line 472
            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 474
      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 496
            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 497
            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 499
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 6 /* n */
        start local 6 // long n
         3: .line 500
            iconst_m1
            istore 8 /* ti */
        start local 8 // int ti
         4: .line 502
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         5: .line 503
            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 504
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         7: .line 523
            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 524
            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 505
            ldc -1
            lreturn
        12: .line 507
      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 508
            lload 6 /* n */
            ldc -3
            lcmp
            ifne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 509
      StackMap locals:
      StackMap stack:
            lload 6 /* n */
            ldc -6
            lcmp
            ifne 24
        15: .line 510
            aload 4 /* target */
            instanceof sun.nio.ch.SinkChannelImpl
            ifeq 17
        16: .line 511
            iconst_0
            putstatic sun.nio.ch.FileChannelImpl.pipeSupported:Z
        17: .line 512
      StackMap locals:
      StackMap stack:
            aload 4 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 19
        18: .line 513
            iconst_0
            putstatic sun.nio.ch.FileChannelImpl.fileSupported:Z
        19: .line 523
      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 524
            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 514
            ldc -6
            lreturn
        24: .line 516
      StackMap locals:
      StackMap stack:
            lload 6 /* n */
            ldc -4
            lcmp
            ifne 31
        25: .line 518
            iconst_0
            putstatic sun.nio.ch.FileChannelImpl.transferSupported:Z
        26: .line 523
            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 524
            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 519
            ldc -4
            lreturn
        31: .line 521
      StackMap locals:
      StackMap stack:
            lload 6 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(J)J
            lstore 10
        32: .line 523
            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 524
            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 521
            lload 10
            lreturn
        37: .line 522
      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 523
            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 524
            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 525
            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 532
            getstatic sun.nio.ch.FileChannelImpl.transferSupported:Z
            ifne 2
         1: .line 533
            ldc -4
            lreturn
         2: .line 535
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* targetFD */
        start local 5 // java.io.FileDescriptor targetFD
         3: .line 536
            aload 4 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 8
         4: .line 537
            getstatic sun.nio.ch.FileChannelImpl.fileSupported:Z
            ifne 6
         5: .line 538
            ldc -6
            lreturn
         6: .line 539
      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 540
            goto 15
      StackMap locals:
      StackMap stack:
         8: aload 4 /* target */
            instanceof sun.nio.ch.SelChImpl
            ifeq 15
         9: .line 542
            aload 4 /* target */
            instanceof sun.nio.ch.SinkChannelImpl
            ifeq 11
            getstatic sun.nio.ch.FileChannelImpl.pipeSupported:Z
            ifne 11
        10: .line 543
            ldc -6
            lreturn
        11: .line 547
      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 548
            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 549
            ldc -6
            lreturn
        14: .line 551
      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 554
      StackMap locals:
      StackMap stack:
            aload 5 /* targetFD */
            ifnonnull 17
        16: .line 555
            ldc -4
            lreturn
        17: .line 556
      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 557
            aload 5 /* targetFD */
            invokestatic sun.nio.ch.IOUtil.fdVal:(Ljava/io/FileDescriptor;)I
            istore 7 /* targetFDVal */
        start local 7 // int targetFDVal
        19: .line 558
            iload 6 /* thisFDVal */
            iload 7 /* targetFDVal */
            if_icmpne 21
        20: .line 559
            ldc -4
            lreturn
        21: .line 561
      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 562
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 8
            monitorenter
        23: .line 563
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            lstore 9 /* pos */
        start local 9 // long pos
        24: .line 565
            aload 0 /* this */
            lload 1 /* position */
            iload 3 /* icount */
        25: .line 566
            aload 4 /* target */
            aload 5 /* targetFD */
        26: .line 565
            invokevirtual sun.nio.ch.FileChannelImpl.transferToDirectlyInternal:(JILjava/nio/channels/WritableByteChannel;Ljava/io/FileDescriptor;)J
            lstore 12
        27: .line 568
            aload 0 /* this */
            lload 9 /* pos */
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            pop
        28: .line 565
            aload 8
            monitorexit
        29: lload 12
            lreturn
        30: .line 567
      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 568
            aload 0 /* this */
            lload 9 /* pos */
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            pop
        32: .line 569
            aload 11
            athrow
        end local 9 // long pos
        33: .line 562
      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 572
      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 583
            aload 5 /* target */
            instanceof sun.nio.ch.SelChImpl
            istore 6 /* isSelChImpl */
        start local 6 // boolean isSelChImpl
         1: .line 584
            aload 5 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifne 3
            iload 6 /* isSelChImpl */
            ifne 3
         2: .line 585
            ldc -4
            lreturn
         3: .line 588
      StackMap locals: int
      StackMap stack:
            lload 3 /* count */
            lstore 7 /* remaining */
        start local 7 // long remaining
         4: .line 589
            goto 31
         5: .line 590
      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 592
            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 595
            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 596
            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 597
      StackMap locals: long java.nio.MappedByteBuffer int
      StackMap stack:
            lload 7 /* remaining */
            iload 12 /* n */
            i2l
            lsub
            lstore 7 /* remaining */
        10: .line 598
            iload 6 /* isSelChImpl */
            ifeq 13
        11: .line 605
            aload 11 /* dbb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        12: .line 600
            goto 32
        13: .line 602
      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 603
      StackMap locals:
      StackMap stack:
            lload 1 /* position */
            iload 12 /* n */
            i2l
            ladd
            lstore 1 /* position */
        end local 12 // int n
        15: .line 604
            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 605
            aload 11 /* dbb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        18: .line 606
            aload 13
            athrow
        19: .line 605
      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 607
            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 610
            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 612
      StackMap locals: java.nio.channels.ClosedByInterruptException
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.close:()V
        24: .line 613
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 12 /* suppressed */
        start local 12 // java.lang.Throwable suppressed
        26: .line 614
            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 616
      StackMap locals:
      StackMap stack:
            aload 11 /* e */
            athrow
        end local 11 // java.nio.channels.ClosedByInterruptException e
        28: .line 617
      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 619
            lload 7 /* remaining */
            lload 3 /* count */
            lcmp
            ifne 32
        30: .line 620
            aload 11 /* ioe */
            athrow
        end local 11 // java.io.IOException ioe
        end local 9 // long size
        31: .line 589
      StackMap locals:
      StackMap stack:
            lload 7 /* remaining */
            lconst_0
            lcmp
            ifgt 5
        32: .line 624
      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=13, 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 632
            iload 3 /* icount */
            sipush 8192
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* c */
        start local 5 // int c
         1: .line 633
            iload 5 /* c */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 6 /* bb */
        start local 6 // java.nio.ByteBuffer bb
         2: .line 634
            lconst_0
            lstore 7 /* tw */
        start local 7 // long tw
         3: .line 635
            lload 1 /* position */
            lstore 9 /* pos */
        start local 9 // long pos
         4: .line 637
            goto 16
         5: .line 638
      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
         6: .line 639
            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
         7: .line 640
            iload 11 /* nr */
            ifgt 9
         8: .line 641
            goto 17
         9: .line 642
      StackMap locals: int
      StackMap stack:
            aload 6 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        10: .line 645
            aload 4 /* target */
            aload 6 /* bb */
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 12 /* nw */
        start local 12 // int nw
        11: .line 646
            lload 7 /* tw */
            iload 12 /* nw */
            i2l
            ladd
            lstore 7 /* tw */
        12: .line 647
            iload 12 /* nw */
            iload 11 /* nr */
            if_icmpeq 14
        13: .line 648
            goto 17
        14: .line 649
      StackMap locals: int
      StackMap stack:
            lload 9 /* pos */
            iload 12 /* nw */
            i2l
            ladd
            lstore 9 /* pos */
        15: .line 650
            aload 6 /* bb */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        end local 12 // int nw
        end local 11 // int nr
        16: .line 637
      StackMap locals:
      StackMap stack:
            lload 7 /* tw */
            iload 3 /* icount */
            i2l
            lcmp
            iflt 5
        17: .line 652
      StackMap locals:
      StackMap stack:
            lload 7 /* tw */
        18: lreturn
        19: .line 653
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 11 /* x */
        start local 11 // java.io.IOException x
        20: .line 654
            lload 7 /* tw */
            lconst_0
            lcmp
            ifle 22
        21: .line 655
            lload 7 /* tw */
            lreturn
        22: .line 656
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 11 /* x */
            athrow
        end local 11 // java.io.IOException x
        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   23     0      this  Lsun/nio/ch/FileChannelImpl;
            0   23     1  position  J
            0   23     3    icount  I
            0   23     4    target  Ljava/nio/channels/WritableByteChannel;
            1   23     5         c  I
            2   23     6        bb  Ljava/nio/ByteBuffer;
            3   23     7        tw  J
            4   23     9       pos  J
            7   16    11        nr  I
           11   16    12        nw  I
           20   23    11         x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    18      19  Class java.io.IOException
    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 664
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 665
            aload 5 /* target */
            invokeinterface java.nio.channels.WritableByteChannel.isOpen:()Z
            ifne 3
         2: .line 666
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         3: .line 667
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 5
         4: .line 668
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         5: .line 669
      StackMap locals:
      StackMap stack:
            aload 5 /* target */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 8
         6: .line 670
            aload 5 /* target */
            checkcast sun.nio.ch.FileChannelImpl
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 8
         7: .line 671
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         8: .line 672
      StackMap locals:
      StackMap stack:
            lload 1 /* position */
            lconst_0
            lcmp
            iflt 9
            lload 3 /* count */
            lconst_0
            lcmp
            ifge 10
         9: .line 673
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        10: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.size:()J
            lstore 6 /* sz */
        start local 6 // long sz
        11: .line 675
            lload 1 /* position */
            lload 6 /* sz */
            lcmp
            ifle 13
        12: .line 676
            lconst_0
            lreturn
        13: .line 677
      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 678
            lload 6 /* sz */
            lload 1 /* position */
            lsub
            iload 8 /* icount */
            i2l
            lcmp
            ifge 16
        15: .line 679
            lload 6 /* sz */
            lload 1 /* position */
            lsub
            l2i
            istore 8 /* icount */
        16: .line 684
      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 685
            lload 9 /* n */
            lreturn
        19: .line 688
      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 689
            lload 9 /* n */
            lreturn
        21: .line 692
      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 699
            aload 1 /* src */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 2
         1: .line 700
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         2: .line 701
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
         3: .line 702
            aload 1 /* src */
            invokevirtual sun.nio.ch.FileChannelImpl.position:()J
            lstore 7 /* pos */
        start local 7 // long pos
         4: .line 703
            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 705
            lload 9 /* max */
            lstore 11 /* remaining */
        start local 11 // long remaining
         6: .line 706
            lload 7 /* pos */
            lstore 13 /* p */
        start local 13 // long p
         7: .line 707
            goto 25
         8: .line 708
      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 710
            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 712
            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 713
            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 714
      StackMap locals: long java.nio.MappedByteBuffer long
      StackMap stack:
            lload 13 /* p */
            lload 18 /* n */
            ladd
            lstore 13 /* p */
        13: .line 715
            lload 2 /* position */
            lload 18 /* n */
            ladd
            lstore 2 /* position */
        14: .line 716
            lload 11 /* remaining */
            lload 18 /* n */
            lsub
            lstore 11 /* remaining */
        end local 18 // long n
        15: .line 717
            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 719
            lload 11 /* remaining */
            lload 9 /* max */
            lcmp
            ifne 19
        18: .line 720
            aload 18 /* ioe */
            athrow
        19: .line 723
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 17 /* bb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        20: .line 721
            goto 26
        end local 18 // java.io.IOException ioe
        21: .line 722
      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 723
            aload 17 /* bb */
            invokestatic sun.nio.ch.FileChannelImpl.unmap:(Ljava/nio/MappedByteBuffer;)V
        23: .line 724
            aload 20
            athrow
        24: .line 723
      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 707
      StackMap locals:
      StackMap stack:
            lload 11 /* remaining */
            lconst_0
            lcmp
            ifgt 8
        26: .line 726
      StackMap locals:
      StackMap stack:
            lload 9 /* max */
            lload 11 /* remaining */
            lsub
            lstore 15 /* nwritten */
        start local 15 // long nwritten
        27: .line 727
            aload 1 /* src */
            lload 7 /* pos */
            lload 15 /* nwritten */
            ladd
            invokevirtual sun.nio.ch.FileChannelImpl.position:(J)Ljava/nio/channels/FileChannel;
            pop
        28: .line 728
            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 701
      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=14, 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 739
            lload 4 /* count */
            ldc 8192
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 6 /* c */
        start local 6 // int c
         1: .line 740
            iload 6 /* c */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 7 /* bb */
        start local 7 // java.nio.ByteBuffer bb
         2: .line 741
            lconst_0
            lstore 8 /* tw */
        start local 8 // long tw
         3: .line 742
            lload 2 /* position */
            lstore 10 /* pos */
        start local 10 // long pos
         4: .line 744
            goto 16
         5: .line 745
      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
         6: .line 748
            aload 1 /* src */
            aload 7 /* bb */
            invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
            istore 12 /* nr */
        start local 12 // int nr
         7: .line 749
            iload 12 /* nr */
            ifgt 9
         8: .line 750
            goto 17
         9: .line 751
      StackMap locals: int
      StackMap stack:
            aload 7 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        10: .line 752
            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
        11: .line 753
            lload 8 /* tw */
            iload 13 /* nw */
            i2l
            ladd
            lstore 8 /* tw */
        12: .line 754
            iload 13 /* nw */
            iload 12 /* nr */
            if_icmpeq 14
        13: .line 755
            goto 17
        14: .line 756
      StackMap locals: int
      StackMap stack:
            lload 10 /* pos */
            iload 13 /* nw */
            i2l
            ladd
            lstore 10 /* pos */
        15: .line 757
            aload 7 /* bb */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        end local 13 // int nw
        end local 12 // int nr
        16: .line 744
      StackMap locals:
      StackMap stack:
            lload 8 /* tw */
            lload 4 /* count */
            lcmp
            iflt 5
        17: .line 759
      StackMap locals:
      StackMap stack:
            lload 8 /* tw */
        18: lreturn
        19: .line 760
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 12 /* x */
        start local 12 // java.io.IOException x
        20: .line 761
            lload 8 /* tw */
            lconst_0
            lcmp
            ifle 22
        21: .line 762
            lload 8 /* tw */
            lreturn
        22: .line 763
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 12 /* x */
            athrow
        end local 12 // java.io.IOException x
        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   23     0      this  Lsun/nio/ch/FileChannelImpl;
            0   23     1       src  Ljava/nio/channels/ReadableByteChannel;
            0   23     2  position  J
            0   23     4     count  J
            1   23     6         c  I
            2   23     7        bb  Ljava/nio/ByteBuffer;
            3   23     8        tw  J
            4   23    10       pos  J
            7   16    12        nr  I
           11   16    13        nw  I
           20   23    12         x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    18      19  Class java.io.IOException
    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 771
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 772
            aload 1 /* src */
            invokeinterface java.nio.channels.ReadableByteChannel.isOpen:()Z
            ifne 3
         2: .line 773
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         3: .line 774
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 775
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 776
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            iflt 6
            lload 4 /* count */
            lconst_0
            lcmp
            ifge 7
         6: .line 777
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         7: .line 778
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.size:()J
            lcmp
            ifle 9
         8: .line 779
            lconst_0
            lreturn
         9: .line 780
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            instanceof sun.nio.ch.FileChannelImpl
            ifeq 13
        10: .line 781
            aload 0 /* this */
            aload 1 /* src */
            checkcast sun.nio.ch.FileChannelImpl
        11: .line 782
            lload 2 /* position */
            lload 4 /* count */
        12: .line 781
            invokevirtual sun.nio.ch.FileChannelImpl.transferFromFileChannel:(Lsun/nio/ch/FileChannelImpl;JJ)J
            lreturn
        13: .line 784
      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 788
            aload 1 /* dst */
            ifnonnull 2
         1: .line 789
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 790
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 791
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 792
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 6
         5: .line 793
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         6: .line 794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            ifeq 8
         7: .line 795
            lload 2 /* position */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            invokestatic sun.nio.ch.Util.checkChannelPositionAligned:(JI)V
         8: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         9: .line 797
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.needsPositionLock:()Z
            ifeq 15
        10: .line 798
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        11: .line 799
            aload 0 /* this */
            aload 1 /* dst */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.readInternal:(Ljava/nio/ByteBuffer;J)I
            aload 4
            monitorexit
        12: ireturn
        13: .line 798
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        14: athrow
        15: .line 802
      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   16     0      this  Lsun/nio/ch/FileChannelImpl;
            0   16     1       dst  Ljava/nio/ByteBuffer;
            0   16     2  position  J
      Exception table:
        from    to  target  type
          11    12      13  any
          13    14      13  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=7, locals=8, 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 807
            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 808
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         2: .line 809
            iconst_m1
            istore 5 /* ti */
        start local 5 // int ti
         3: .line 812
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         4: .line 813
            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 814
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         6: .line 821
            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 822
            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.endBlocking:(Z)V
        10: .line 823
            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 815
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        12: .line 817
      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.direct:Z
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            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;JZILsun/nio/ch/NativeDispatcher;)I
            istore 4 /* n */
        13: .line 818
            iload 4 /* n */
            bipush -3
            if_icmpne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 819
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 7
        15: .line 821
            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 822
            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.endBlocking:(Z)V
        19: .line 823
            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 819
      StackMap locals:
      StackMap stack:
            iload 7
            ireturn
        21: .line 820
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 821
            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 822
            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.endBlocking:(Z)V
        26: .line 823
            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 824
      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 dst
        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       dst  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
      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 828
            aload 1 /* src */
            ifnonnull 2
         1: .line 829
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 830
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 4
         3: .line 831
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 832
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 6
         5: .line 833
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         6: .line 834
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.direct:Z
            ifeq 8
         7: .line 835
            lload 2 /* position */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            invokestatic sun.nio.ch.Util.checkChannelPositionAligned:(JI)V
         8: .line 836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         9: .line 837
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
            invokevirtual sun.nio.ch.FileDispatcher.needsPositionLock:()Z
            ifeq 15
        10: .line 838
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        11: .line 839
            aload 0 /* this */
            aload 1 /* src */
            lload 2 /* position */
            invokevirtual sun.nio.ch.FileChannelImpl.writeInternal:(Ljava/nio/ByteBuffer;J)I
            aload 4
            monitorexit
        12: ireturn
        13: .line 838
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        14: athrow
        15: .line 842
      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   16     0      this  Lsun/nio/ch/FileChannelImpl;
            0   16     1       src  Ljava/nio/ByteBuffer;
            0   16     2  position  J
      Exception table:
        from    to  target  type
          11    12      13  any
          13    14      13  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=7, 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 847
            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 848
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         2: .line 849
            iconst_m1
            istore 5 /* ti */
        start local 5 // int ti
         3: .line 851
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
         4: .line 852
            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 853
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
         6: .line 860
            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 861
            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.endBlocking:(Z)V
        10: .line 862
            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 854
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        12: .line 856
      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.direct:Z
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.alignment:I
            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;JZILsun/nio/ch/NativeDispatcher;)I
            istore 4 /* n */
        13: .line 857
            iload 4 /* n */
            bipush -3
            if_icmpne 14
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 12
        14: .line 858
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            invokestatic sun.nio.ch.IOStatus.normalize:(I)I
            istore 7
        15: .line 860
            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 861
            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.endBlocking:(Z)V
        19: .line 862
            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 858
      StackMap locals:
      StackMap stack:
            iload 7
            ireturn
        21: .line 859
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.ByteBuffer long int int
      StackMap stack: java.lang.Throwable
            astore 6
        22: .line 860
            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 861
            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.endBlocking:(Z)V
        26: .line 862
            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 863
      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 982
            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 983
            aload 1 /* cl */
            ifnull 3
         2: .line 984
            aload 1 /* cl */
            invokevirtual jdk.internal.ref.Cleaner.clean:()V
         3: .line 985
      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=10, 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 993
            lload 4 /* size */
            ldc 2147483647
            lcmp
            ifle 2
         1: .line 994
            new java.lang.IllegalArgumentException
            dup
            ldc "Size exceeds Integer.MAX_VALUE"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 995
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mode */
            ldc "Mode is null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.nio.channels.FileChannel$MapMode
            invokevirtual sun.nio.ch.FileChannelImpl.isSync:(Ljava/nio/channels/FileChannel$MapMode;)Z
            istore 6 /* isSync */
        start local 6 // boolean isSync
         3: .line 996
            aload 0 /* this */
            aload 1 /* mode */
            invokevirtual sun.nio.ch.FileChannelImpl.toProt:(Ljava/nio/channels/FileChannel$MapMode;)I
            istore 7 /* prot */
        start local 7 // int prot
         4: .line 997
            aload 0 /* this */
            aload 1 /* mode */
            lload 2 /* position */
            lload 4 /* size */
            iload 7 /* prot */
            iload 6 /* isSync */
            invokevirtual sun.nio.ch.FileChannelImpl.mapInternal:(Ljava/nio/channels/FileChannel$MapMode;JJIZ)Lsun/nio/ch/FileChannelImpl$Unmapper;
            astore 8 /* unmapper */
        start local 8 // sun.nio.ch.FileChannelImpl$Unmapper unmapper
         5: .line 998
            aload 8 /* unmapper */
            ifnonnull 10
         6: .line 1000
            new java.io.FileDescriptor
            dup
            invokespecial java.io.FileDescriptor.<init>:()V
            astore 9 /* dummy */
        start local 9 // java.io.FileDescriptor dummy
         7: .line 1001
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifeq 8
            iload 7 /* prot */
            ifne 9
         8: .line 1002
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int int sun.nio.ch.FileChannelImpl$Unmapper java.io.FileDescriptor
      StackMap stack:
            iconst_0
            lconst_0
            aload 9 /* dummy */
            aconst_null
            iload 6 /* isSync */
            invokestatic sun.nio.ch.Util.newMappedByteBufferR:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)Ljava/nio/MappedByteBuffer;
            areturn
         9: .line 1004
      StackMap locals:
      StackMap stack:
            iconst_0
            lconst_0
            aload 9 /* dummy */
            aconst_null
            iload 6 /* isSync */
            invokestatic sun.nio.ch.Util.newMappedByteBuffer:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)Ljava/nio/MappedByteBuffer;
            areturn
        end local 9 // java.io.FileDescriptor dummy
        10: .line 1005
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifeq 11
            iload 7 /* prot */
            ifne 16
        11: .line 1006
      StackMap locals:
      StackMap stack:
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.cap:J
            l2i
        12: .line 1007
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.address:J
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.pagePosition:I
            i2l
            ladd
        13: .line 1008
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.fd:Ljava/io/FileDescriptor;
        14: .line 1009
            aload 8 /* unmapper */
            iload 6 /* isSync */
        15: .line 1006
            invokestatic sun.nio.ch.Util.newMappedByteBufferR:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)Ljava/nio/MappedByteBuffer;
            areturn
        16: .line 1011
      StackMap locals:
      StackMap stack:
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.cap:J
            l2i
        17: .line 1012
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.address:J
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.pagePosition:I
            i2l
            ladd
        18: .line 1013
            aload 8 /* unmapper */
            getfield sun.nio.ch.FileChannelImpl$Unmapper.fd:Ljava/io/FileDescriptor;
        19: .line 1014
            aload 8 /* unmapper */
            iload 6 /* isSync */
        20: .line 1011
            invokestatic sun.nio.ch.Util.newMappedByteBuffer:(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)Ljava/nio/MappedByteBuffer;
            areturn
        end local 8 // sun.nio.ch.FileChannelImpl$Unmapper unmapper
        end local 7 // int prot
        end local 6 // boolean isSync
        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   21     0      this  Lsun/nio/ch/FileChannelImpl;
            0   21     1      mode  Ljava/nio/channels/FileChannel$MapMode;
            0   21     2  position  J
            0   21     4      size  J
            3   21     6    isSync  Z
            4   21     7      prot  I
            5   21     8  unmapper  Lsun/nio/ch/FileChannelImpl$Unmapper;
            7   10     9     dummy  Ljava/io/FileDescriptor;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      mode      
      position  
      size      

  public sun.nio.ch.FileChannelImpl$Unmapper mapInternal(java.nio.channels.FileChannel$MapMode, long, long);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;JJ)Lsun/nio/ch/FileChannelImpl$Unmapper;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, 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 1019
            aload 0 /* this */
            aload 1 /* mode */
            ldc "Mode is null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.nio.channels.FileChannel$MapMode
            invokevirtual sun.nio.ch.FileChannelImpl.isSync:(Ljava/nio/channels/FileChannel$MapMode;)Z
            istore 6 /* isSync */
        start local 6 // boolean isSync
         1: .line 1020
            aload 0 /* this */
            aload 1 /* mode */
            invokevirtual sun.nio.ch.FileChannelImpl.toProt:(Ljava/nio/channels/FileChannel$MapMode;)I
            istore 7 /* prot */
        start local 7 // int prot
         2: .line 1021
            aload 0 /* this */
            aload 1 /* mode */
            lload 2 /* position */
            lload 4 /* size */
            iload 7 /* prot */
            iload 6 /* isSync */
            invokevirtual sun.nio.ch.FileChannelImpl.mapInternal:(Ljava/nio/channels/FileChannel$MapMode;JJIZ)Lsun/nio/ch/FileChannelImpl$Unmapper;
            areturn
        end local 7 // int prot
        end local 6 // boolean isSync
        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    3     0      this  Lsun/nio/ch/FileChannelImpl;
            0    3     1      mode  Ljava/nio/channels/FileChannel$MapMode;
            0    3     2  position  J
            0    3     4      size  J
            1    3     6    isSync  Z
            2    3     7      prot  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      mode      
      position  
      size      

  private sun.nio.ch.FileChannelImpl$Unmapper mapInternal(java.nio.channels.FileChannel$MapMode, long, long, int, boolean);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;JJIZ)Lsun/nio/ch/FileChannelImpl$Unmapper;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=22, args_size=6
        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
        start local 6 // int prot
        start local 7 // boolean isSync
         0: .line 1027
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 1028
            aload 1 /* mode */
            ifnonnull 3
         2: .line 1029
            new java.lang.NullPointerException
            dup
            ldc "Mode is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1030
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lconst_0
            lcmp
            ifge 5
         4: .line 1031
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative position"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1032
      StackMap locals:
      StackMap stack:
            lload 4 /* size */
            lconst_0
            lcmp
            ifge 7
         6: .line 1033
            new java.lang.IllegalArgumentException
            dup
            ldc "Negative size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1034
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            lload 4 /* size */
            ladd
            lconst_0
            lcmp
            ifge 9
         8: .line 1035
            new java.lang.IllegalArgumentException
            dup
            ldc "Position + size overflow"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mode */
            iload 6 /* prot */
            iload 7 /* isSync */
            invokevirtual sun.nio.ch.FileChannelImpl.checkMode:(Ljava/nio/channels/FileChannel$MapMode;IZ)V
        10: .line 1038
            ldc -1
            lstore 8 /* addr */
        start local 8 // long addr
        11: .line 1039
            iconst_m1
            istore 10 /* ti */
        start local 10 // int ti
        12: .line 1041
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
        13: .line 1042
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            invokevirtual sun.nio.ch.NativeThreadSet.add:()I
            istore 10 /* ti */
        14: .line 1043
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 18
        15: .line 1114
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 10 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        16: .line 1115
            aload 0 /* this */
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        17: .line 1044
            aconst_null
            areturn
        18: .line 1048
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.positionLock:Ljava/lang/Object;
            dup
            astore 14
            monitorenter
        19: .line 1051
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int 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 15 /* filesize */
        start local 15 // long filesize
        20: .line 1052
            lload 15 /* filesize */
            ldc -3
            lcmp
            ifne 21
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 19
        21: .line 1053
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 26
        22: .line 1054
            aload 14
            monitorexit
        23: .line 1114
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 10 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        24: .line 1115
            aload 0 /* this */
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        25: .line 1054
            aconst_null
            areturn
        26: .line 1056
      StackMap locals:
      StackMap stack:
            lload 15 /* filesize */
            lload 2 /* position */
            lload 4 /* size */
            ladd
            lcmp
            ifge 36
        27: .line 1057
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 29
        28: .line 1058
            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
        29: .line 1063
      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.truncate:(Ljava/io/FileDescriptor;J)I
            istore 17 /* rv */
        start local 17 // int rv
        30: .line 1064
            iload 17 /* rv */
            bipush -3
            if_icmpne 31
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 29
        31: .line 1065
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 36
        32: .line 1066
            aload 14
            monitorexit
        33: .line 1114
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 10 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        34: .line 1115
            aload 0 /* this */
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        35: .line 1066
            aconst_null
            areturn
        end local 17 // int rv
        36: .line 1069
      StackMap locals:
      StackMap stack:
            lload 4 /* size */
            lconst_0
            lcmp
            ifne 41
        37: .line 1070
            aload 14
            monitorexit
        38: .line 1114
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 10 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        39: .line 1115
            aload 0 /* this */
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        40: .line 1070
            aconst_null
            areturn
        41: .line 1073
      StackMap locals:
      StackMap stack:
            lload 2 /* position */
            getstatic sun.nio.ch.FileChannelImpl.allocationGranularity:J
            lrem
            l2i
            istore 13 /* pagePosition */
        start local 13 // int pagePosition
        42: .line 1074
            lload 2 /* position */
            iload 13 /* pagePosition */
            i2l
            lsub
            lstore 17 /* mapPosition */
        start local 17 // long mapPosition
        43: .line 1075
            lload 4 /* size */
            iload 13 /* pagePosition */
            i2l
            ladd
            lstore 11 /* mapSize */
        start local 11 // long mapSize
        44: .line 1078
            aload 0 /* this */
            iload 6 /* prot */
            lload 17 /* mapPosition */
            lload 11 /* mapSize */
            iload 7 /* isSync */
            invokevirtual sun.nio.ch.FileChannelImpl.map0:(IJJZ)J
            lstore 8 /* addr */
        45: .line 1079
            goto 56
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int int long int long int java.lang.Object long long
      StackMap stack: java.lang.OutOfMemoryError
        46: pop
        47: .line 1082
            invokestatic java.lang.System.gc:()V
        48: .line 1084
            ldc 100
            invokestatic java.lang.Thread.sleep:(J)V
        49: .line 1085
            goto 52
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        50: pop
        51: .line 1086
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        52: .line 1089
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* prot */
            lload 17 /* mapPosition */
            lload 11 /* mapSize */
            iload 7 /* isSync */
            invokevirtual sun.nio.ch.FileChannelImpl.map0:(IJJZ)J
            lstore 8 /* addr */
        53: .line 1090
            goto 56
      StackMap locals:
      StackMap stack: java.lang.OutOfMemoryError
        54: astore 19 /* y */
        start local 19 // java.lang.OutOfMemoryError y
        55: .line 1092
            new java.io.IOException
            dup
            ldc "Map failed"
            aload 19 /* y */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 19 // java.lang.OutOfMemoryError y
        end local 17 // long mapPosition
        end local 15 // long filesize
        56: .line 1048
      StackMap locals:
      StackMap stack:
            aload 14
            monitorexit
        57: goto 60
        end local 13 // int pagePosition
        end local 11 // long mapSize
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int int long int top top top java.lang.Object
      StackMap stack: java.lang.Throwable
        58: aload 14
            monitorexit
        59: athrow
        start local 11 // long mapSize
        start local 13 // int pagePosition
        60: .line 1101
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int 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 14 /* mfd */
        start local 14 // java.io.FileDescriptor mfd
        61: .line 1102
            goto 65
        end local 14 // java.io.FileDescriptor mfd
      StackMap locals:
      StackMap stack: java.io.IOException
        62: astore 15 /* ioe */
        start local 15 // java.io.IOException ioe
        63: .line 1103
            lload 8 /* addr */
            lload 11 /* mapSize */
            invokestatic sun.nio.ch.FileChannelImpl.unmap0:(JJ)I
            pop
        64: .line 1104
            aload 15 /* ioe */
            athrow
        end local 15 // java.io.IOException ioe
        start local 14 // java.io.FileDescriptor mfd
        65: .line 1107
      StackMap locals: java.io.FileDescriptor
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 66
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            ifne 66
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        66: .line 1108
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.ch.FileChannelImpl.$assertionsDisabled:Z
            ifne 67
            lload 8 /* addr */
            getstatic sun.nio.ch.FileChannelImpl.allocationGranularity:J
            lrem
            lconst_0
            lcmp
            ifeq 67
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        67: .line 1109
      StackMap locals:
      StackMap stack:
            iload 7 /* isSync */
            ifeq 69
        68: .line 1110
            new sun.nio.ch.FileChannelImpl$SyncUnmapper
            dup
            lload 8 /* addr */
            lload 11 /* mapSize */
            lload 4 /* size */
            aload 14 /* mfd */
            iload 13 /* pagePosition */
            invokespecial sun.nio.ch.FileChannelImpl$SyncUnmapper.<init>:(JJJLjava/io/FileDescriptor;I)V
            goto 70
        69: .line 1111
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileChannelImpl$DefaultUnmapper
            dup
            lload 8 /* addr */
            lload 11 /* mapSize */
            lload 4 /* size */
            aload 14 /* mfd */
            iload 13 /* pagePosition */
            invokespecial sun.nio.ch.FileChannelImpl$DefaultUnmapper.<init>:(JJJLjava/io/FileDescriptor;I)V
        70: .line 1109
      StackMap locals:
      StackMap stack: sun.nio.ch.FileChannelImpl$Unmapper
            astore 15 /* um */
        start local 15 // sun.nio.ch.FileChannelImpl$Unmapper um
        71: .line 1112
            aload 15 /* um */
            astore 21
        72: .line 1114
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 10 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        73: .line 1115
            aload 0 /* this */
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        74: .line 1112
            aload 21
            areturn
        end local 15 // sun.nio.ch.FileChannelImpl$Unmapper um
        end local 14 // java.io.FileDescriptor mfd
        end local 13 // int pagePosition
        end local 11 // long mapSize
        75: .line 1113
      StackMap locals: sun.nio.ch.FileChannelImpl java.nio.channels.FileChannel$MapMode long long int int long int
      StackMap stack: java.lang.Throwable
            astore 20
        76: .line 1114
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 10 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
        77: .line 1115
            aload 0 /* this */
            lload 8 /* addr */
            invokestatic sun.nio.ch.IOStatus.checkAll:(J)Z
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        78: .line 1116
            aload 20
            athrow
        end local 10 // int ti
        end local 8 // long addr
        end local 7 // boolean isSync
        end local 6 // int prot
        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   79     0          this  Lsun/nio/ch/FileChannelImpl;
            0   79     1          mode  Ljava/nio/channels/FileChannel$MapMode;
            0   79     2      position  J
            0   79     4          size  J
            0   79     6          prot  I
            0   79     7        isSync  Z
           11   79     8          addr  J
           12   79    10            ti  I
           44   58    11       mapSize  J
           60   75    11       mapSize  J
           42   58    13  pagePosition  I
           60   75    13  pagePosition  I
           20   56    15      filesize  J
           30   36    17            rv  I
           43   56    17   mapPosition  J
           55   56    19             y  Ljava/lang/OutOfMemoryError;
           61   62    14           mfd  Ljava/io/FileDescriptor;
           65   75    14           mfd  Ljava/io/FileDescriptor;
           63   65    15           ioe  Ljava/io/IOException;
           71   75    15            um  Lsun/nio/ch/FileChannelImpl$Unmapper;
      Exception table:
        from    to  target  type
          44    45      46  Class java.lang.OutOfMemoryError
          48    49      50  Class java.lang.InterruptedException
          52    53      54  Class java.lang.OutOfMemoryError
          19    23      58  any
          26    33      58  any
          36    38      58  any
          41    57      58  any
          58    59      58  any
          60    61      62  Class java.io.IOException
          12    15      75  any
          18    23      75  any
          26    33      75  any
          36    38      75  any
          41    72      75  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      mode      
      position  
      size      
      prot      
      isSync    

  private boolean isSync(java.nio.channels.FileChannel$MapMode);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.channels.FileChannel$MapMode mode
         0: .line 1122
            invokestatic jdk.internal.misc.VM.isModuleSystemInited:()Z
            ifne 1
            iconst_0
            goto 5
         1: .line 1123
      StackMap locals:
      StackMap stack:
            aload 1 /* mode */
            getstatic jdk.internal.misc.ExtendedMapMode.READ_ONLY_SYNC:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpeq 4
         2: .line 1124
            aload 1 /* mode */
            getstatic jdk.internal.misc.ExtendedMapMode.READ_WRITE_SYNC:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpeq 4
         3: .line 1122
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 1 // java.nio.channels.FileChannel$MapMode mode
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/nio/ch/FileChannelImpl;
            0    6     1  mode  Ljava/nio/channels/FileChannel$MapMode;
    MethodParameters:
      Name  Flags
      mode  

  private int toProt(java.nio.channels.FileChannel$MapMode);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.channels.FileChannel$MapMode mode
         0: .line 1129
            aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 3
         1: .line 1130
            iconst_0
            istore 2 /* prot */
        start local 2 // int prot
         2: .line 1131
            goto 16
        end local 2 // int prot
      StackMap locals:
      StackMap stack:
         3: aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.READ_WRITE:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 6
         4: .line 1132
            iconst_1
            istore 2 /* prot */
        start local 2 // int prot
         5: .line 1133
            goto 16
        end local 2 // int prot
      StackMap locals:
      StackMap stack:
         6: aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.PRIVATE:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 9
         7: .line 1134
            iconst_2
            istore 2 /* prot */
        start local 2 // int prot
         8: .line 1135
            goto 16
        end local 2 // int prot
      StackMap locals:
      StackMap stack:
         9: aload 1 /* mode */
            getstatic jdk.internal.misc.ExtendedMapMode.READ_ONLY_SYNC:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 12
        10: .line 1136
            iconst_0
            istore 2 /* prot */
        start local 2 // int prot
        11: .line 1137
            goto 16
        end local 2 // int prot
      StackMap locals:
      StackMap stack:
        12: aload 1 /* mode */
            getstatic jdk.internal.misc.ExtendedMapMode.READ_WRITE_SYNC:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpne 15
        13: .line 1138
            iconst_1
            istore 2 /* prot */
        start local 2 // int prot
        14: .line 1139
            goto 16
        end local 2 // int prot
        15: .line 1140
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 2 /* prot */
        start local 2 // int prot
        16: .line 1142
      StackMap locals: int
      StackMap stack:
            iload 2 /* prot */
            ireturn
        end local 2 // int prot
        end local 1 // java.nio.channels.FileChannel$MapMode mode
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lsun/nio/ch/FileChannelImpl;
            0   17     1  mode  Ljava/nio/channels/FileChannel$MapMode;
            2    3     2  prot  I
            5    6     2  prot  I
            8    9     2  prot  I
           11   12     2  prot  I
           14   15     2  prot  I
           16   17     2  prot  I
    MethodParameters:
      Name  Flags
      mode  

  private void checkMode(java.nio.channels.FileChannel$MapMode, int, boolean);
    descriptor: (Ljava/nio/channels/FileChannel$MapMode;IZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // sun.nio.ch.FileChannelImpl this
        start local 1 // java.nio.channels.FileChannel$MapMode mode
        start local 2 // int prot
        start local 3 // boolean isSync
         0: .line 1146
            iload 2 /* prot */
            iconst_m1
            if_icmpne 2
         1: .line 1147
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
         2: .line 1149
      StackMap locals:
      StackMap stack:
            aload 1 /* mode */
            getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpeq 4
            aload 1 /* mode */
            getstatic jdk.internal.misc.ExtendedMapMode.READ_ONLY_SYNC:Ljava/nio/channels/FileChannel$MapMode;
            if_acmpeq 4
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 4
         3: .line 1150
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         4: .line 1151
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 6
         5: .line 1152
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         6: .line 1154
      StackMap locals:
      StackMap stack:
            iload 3 /* isSync */
            ifeq 8
            invokestatic jdk.internal.misc.Unsafe.isWritebackEnabled:()Z
            ifne 8
         7: .line 1155
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
         8: .line 1157
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean isSync
        end local 2 // int prot
        end local 1 // java.nio.channels.FileChannel$MapMode mode
        end local 0 // sun.nio.ch.FileChannelImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lsun/nio/ch/FileChannelImpl;
            0    9     1    mode  Ljava/nio/channels/FileChannel$MapMode;
            0    9     2    prot  I
            0    9     3  isSync  Z
    MethodParameters:
        Name  Flags
      mode    
      prot    
      isSync  

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

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

  private sun.nio.ch.FileLockTable fileLockTable();
    descriptor: ()Lsun/nio/ch/FileLockTable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.nio.ch.FileChannelImpl this
         0: .line 1215
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 15
         1: .line 1216
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 1217
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 11
         3: .line 1218
            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
         4: .line 1220
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         5: .line 1221
            aload 0 /* this */
            new sun.nio.ch.FileLockTable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.fd:Ljava/io/FileDescriptor;
            invokespecial sun.nio.ch.FileLockTable.<init>:(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)V
            putfield sun.nio.ch.FileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
         6: .line 1222
            goto 10
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileChannelImpl int
      StackMap stack: java.lang.Throwable
         7: astore 3
         8: .line 1223
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.threads:Lsun/nio/ch/NativeThreadSet;
            iload 2 /* ti */
            invokevirtual sun.nio.ch.NativeThreadSet.remove:(I)V
         9: .line 1224
            aload 3
            athrow
        10: .line 1223
      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
        11: .line 1216
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 1228
      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   16     0  this  Lsun/nio/ch/FileChannelImpl;
            4   11     2    ti  I
      Exception table:
        from    to  target  type
           4     7       7  any
           2    12      13  any
          13    14      13  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 1234
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 1235
            iload 5 /* shared */
            ifeq 3
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 3
         2: .line 1236
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         3: .line 1237
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 5
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 1238
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 1239
      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 1240
            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 1241
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.add:(Ljava/nio/channels/FileLock;)V
         8: .line 1242
            iconst_0
            istore 8 /* completed */
        start local 8 // boolean completed
         9: .line 1243
            iconst_m1
            istore 9 /* ti */
        start local 9 // int ti
        10: .line 1245
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.beginBlocking:()V
        11: .line 1246
            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 1247
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 21
        13: .line 1264
            iload 8 /* completed */
            ifne 15
        14: .line 1265
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        15: .line 1266
      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 1268
            aload 0 /* this */
            iload 8 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        17: .line 1269
            goto 20
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedByInterruptException
        18: pop
        19: .line 1270
            new java.nio.channels.FileLockInterruptionException
            dup
            invokespecial java.nio.channels.FileLockInterruptionException.<init>:()V
            athrow
        20: .line 1248
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        21: .line 1251
      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 1252
            iload 10 /* n */
            iconst_2
            if_icmpne 23
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifne 21
        23: .line 1253
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.isOpen:()Z
            ifeq 42
        24: .line 1254
            iload 10 /* n */
            iconst_1
            if_icmpne 31
        25: .line 1255
            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 1256
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileLockImpl
            dup
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
        27: .line 1257
            iconst_0
        28: .line 1256
            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 1258
            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 1259
            aload 11 /* fli2 */
            astore 6 /* fli */
        end local 11 // sun.nio.ch.FileLockImpl fli2
        31: .line 1261
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* completed */
        end local 10 // int n
        32: .line 1263
            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 1264
            iload 8 /* completed */
            ifne 36
        35: .line 1265
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        36: .line 1266
      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 1268
            aload 0 /* this */
            iload 8 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        38: .line 1269
            goto 41
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedByInterruptException
        39: pop
        40: .line 1270
            new java.nio.channels.FileLockInterruptionException
            dup
            invokespecial java.nio.channels.FileLockInterruptionException.<init>:()V
            athrow
        41: .line 1272
      StackMap locals:
      StackMap stack:
            aload 12
            athrow
        42: .line 1264
      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 1265
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        44: .line 1266
      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 1268
            aload 0 /* this */
            iload 8 /* completed */
            invokevirtual sun.nio.ch.FileChannelImpl.endBlocking:(Z)V
        46: .line 1269
            goto 49
      StackMap locals:
      StackMap stack: java.nio.channels.ClosedByInterruptException
        47: pop
        48: .line 1270
            new java.nio.channels.FileLockInterruptionException
            dup
            invokespecial java.nio.channels.FileLockInterruptionException.<init>:()V
            athrow
        49: .line 1273
      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 1279
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         1: .line 1280
            iload 5 /* shared */
            ifeq 3
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.readable:Z
            ifne 3
         2: .line 1281
            new java.nio.channels.NonReadableChannelException
            dup
            invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
            athrow
         3: .line 1282
      StackMap locals:
      StackMap stack:
            iload 5 /* shared */
            ifne 5
            aload 0 /* this */
            getfield sun.nio.ch.FileChannelImpl.writable:Z
            ifne 5
         4: .line 1283
            new java.nio.channels.NonWritableChannelException
            dup
            invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
            athrow
         5: .line 1284
      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 1285
            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 1286
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.add:(Ljava/nio/channels/FileLock;)V
         8: .line 1289
            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 1292
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
        10: .line 1293
            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 1294
            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 1295
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        14: .line 1296
            aload 10 /* e */
            athrow
        end local 10 // java.io.IOException e
        start local 8 // int result
        15: .line 1298
      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 1299
            aload 7 /* flt */
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
        17: .line 1311
            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 1300
            aconst_null
            areturn
        19: .line 1302
      StackMap locals:
      StackMap stack:
            iload 8 /* result */
            iconst_1
            if_icmpne 28
        20: .line 1303
            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 1304
      StackMap locals:
      StackMap stack:
            new sun.nio.ch.FileLockImpl
            dup
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
        22: .line 1305
            iconst_0
        23: .line 1304
            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 1306
            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 1307
            aload 10 /* fli2 */
            astore 12
        26: .line 1311
            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 1307
            aload 12
            areturn
        end local 10 // sun.nio.ch.FileLockImpl fli2
        28: .line 1309
      StackMap locals:
      StackMap stack:
            aload 6 /* fli */
            astore 12
        29: .line 1311
            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 1309
            aload 12
            areturn
        end local 8 // int result
        31: .line 1310
      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 1311
            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 1312
            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 1316
            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 1318
            aload 0 /* this */
            invokevirtual sun.nio.ch.FileChannelImpl.ensureOpen:()V
         2: .line 1319
            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 1320
            goto 7
      StackMap locals: sun.nio.ch.FileChannelImpl sun.nio.ch.FileLockImpl int
      StackMap stack: java.lang.Throwable
         4: astore 3
         5: .line 1321
            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 1322
            aload 3
            athrow
         7: .line 1321
      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 1323
            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 1324
      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 1325
            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, boolean);
    descriptor: (IJJZ)J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      prot      
      position  
      length    
      isSync    

  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 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$2  sun.nio.ch.FileChannelImpl$Closer  sun.nio.ch.FileChannelImpl$DefaultUnmapper  sun.nio.ch.FileChannelImpl$SyncUnmapper  sun.nio.ch.FileChannelImpl$Unmapper
InnerClasses:
  public abstract Cleanable = java.lang.ref.Cleaner$Cleanable of java.lang.ref.Cleaner
  public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel
  public abstract BufferPool = jdk.internal.access.JavaNioAccess$BufferPool of jdk.internal.access.JavaNioAccess
  sun.nio.ch.FileChannelImpl$1
  sun.nio.ch.FileChannelImpl$2
  private Closer = sun.nio.ch.FileChannelImpl$Closer of sun.nio.ch.FileChannelImpl
  private DefaultUnmapper = sun.nio.ch.FileChannelImpl$DefaultUnmapper of sun.nio.ch.FileChannelImpl
  private SyncUnmapper = sun.nio.ch.FileChannelImpl$SyncUnmapper of sun.nio.ch.FileChannelImpl
  private abstract Unmapper = sun.nio.ch.FileChannelImpl$Unmapper of sun.nio.ch.FileChannelImpl