abstract class sun.nio.ch.AsynchronousFileChannelImpl extends java.nio.channels.AsynchronousFileChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.nio.ch.AsynchronousFileChannelImpl
  super_class: java.nio.channels.AsynchronousFileChannel
{
  protected final java.util.concurrent.locks.ReadWriteLock closeLock;
    descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected volatile boolean closed;
    descriptor: Z
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected final java.io.FileDescriptor fdObj;
    descriptor: Ljava/io/FileDescriptor;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final boolean reading;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final boolean writing;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.util.concurrent.ExecutorService executor;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

  protected void <init>(java.io.FileDescriptor, boolean, boolean, java.util.concurrent.ExecutorService);
    descriptor: (Ljava/io/FileDescriptor;ZZLjava/util/concurrent/ExecutorService;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // java.io.FileDescriptor fdObj
        start local 2 // boolean reading
        start local 3 // boolean writing
        start local 4 // java.util.concurrent.ExecutorService executor
         0: .line 57
            aload 0 /* this */
            invokespecial java.nio.channels.AsynchronousFileChannel.<init>:()V
         1: .line 44
            aload 0 /* this */
            new java.util.concurrent.locks.ReentrantReadWriteLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
            putfield sun.nio.ch.AsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
         2: .line 62
            aload 0 /* this */
            aload 1 /* fdObj */
            putfield sun.nio.ch.AsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
         3: .line 63
            aload 0 /* this */
            iload 2 /* reading */
            putfield sun.nio.ch.AsynchronousFileChannelImpl.reading:Z
         4: .line 64
            aload 0 /* this */
            iload 3 /* writing */
            putfield sun.nio.ch.AsynchronousFileChannelImpl.writing:Z
         5: .line 65
            aload 0 /* this */
            aload 4 /* executor */
            putfield sun.nio.ch.AsynchronousFileChannelImpl.executor:Ljava/util/concurrent/ExecutorService;
         6: .line 66
            return
        end local 4 // java.util.concurrent.ExecutorService executor
        end local 3 // boolean writing
        end local 2 // boolean reading
        end local 1 // java.io.FileDescriptor fdObj
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    7     1     fdObj  Ljava/io/FileDescriptor;
            0    7     2   reading  Z
            0    7     3   writing  Z
            0    7     4  executor  Ljava/util/concurrent/ExecutorService;
    MethodParameters:
          Name  Flags
      fdObj     
      reading   
      writing   
      executor  

  final java.util.concurrent.ExecutorService executor();
    descriptor: ()Ljava/util/concurrent/ExecutorService;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
         0: .line 69
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.executor:Ljava/util/concurrent/ExecutorService;
            areturn
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;

  public final boolean isOpen();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
         0: .line 74
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.closed:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;

  protected final void begin();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
         0: .line 83
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 84
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.closed:Z
            ifeq 3
         2: .line 85
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         3: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;
    Exceptions:
      throws java.io.IOException

  protected final void end();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
         0: .line 92
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         1: .line 93
            return
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;

  protected final void end(boolean);
    descriptor: (Z)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // boolean completed
         0: .line 99
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.end:()V
         1: .line 100
            iload 1 /* completed */
            ifne 3
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.isOpen:()Z
            ifne 3
         2: .line 101
            new java.nio.channels.AsynchronousCloseException
            dup
            invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
            athrow
         3: .line 102
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completed
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    4     1  completed  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      completed  

  abstract <A> java.util.concurrent.Future<java.nio.channels.FileLock> implLock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
    descriptor: (JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0400) ACC_ABSTRACT
    Signature: <A:Ljava/lang/Object;>(JJZTA;Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;)Ljava/util/concurrent/Future<Ljava/nio/channels/FileLock;>;
    MethodParameters:
            Name  Flags
      position    
      size        
      shared      
      attachment  
      handler     

  public final java.util.concurrent.Future<java.nio.channels.FileLock> lock(long, long, boolean);
    descriptor: (JJZ)Ljava/util/concurrent/Future;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
         0: .line 118
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            aconst_null
            aconst_null
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implLock:(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
            areturn
        end local 5 // boolean shared
        end local 3 // long size
        end local 1 // long position
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    1     1  position  J
            0    1     3      size  J
            0    1     5    shared  Z
    Signature: (JJZ)Ljava/util/concurrent/Future<Ljava/nio/channels/FileLock;>;
    MethodParameters:
          Name  Flags
      position  
      size      
      shared    

  public final <A> void lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>);
    descriptor: (JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=8, locals=8, args_size=6
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
        start local 6 // java.lang.Object attachment
        start local 7 // java.nio.channels.CompletionHandler handler
         0: .line 128
            aload 7 /* handler */
            ifnonnull 2
         1: .line 129
            new java.lang.NullPointerException
            dup
            ldc "'handler' is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* position */
            lload 3 /* size */
            iload 5 /* shared */
            aload 6 /* attachment */
            aload 7 /* handler */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implLock:(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
            pop
         3: .line 131
            return
        end local 7 // java.nio.channels.CompletionHandler handler
        end local 6 // java.lang.Object attachment
        end local 5 // boolean shared
        end local 3 // long size
        end local 1 // long position
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    4     1    position  J
            0    4     3        size  J
            0    4     5      shared  Z
            0    4     6  attachment  TA;
            0    4     7     handler  Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;
    Signature: <A:Ljava/lang/Object;>(JJZTA;Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;)V
    MethodParameters:
            Name  Flags
      position    
      size        
      shared      
      attachment  
      handler     

  final void ensureFileLockTableInitialized();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
         0: .line 136
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 8
         1: .line 137
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 138
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnonnull 4
         3: .line 139
            aload 0 /* this */
            new sun.nio.ch.FileLockTable
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
            invokespecial sun.nio.ch.FileLockTable.<init>:(Ljava/nio/channels/Channel;Ljava/io/FileDescriptor;)V
            putfield sun.nio.ch.AsynchronousFileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
         4: .line 137
      StackMap locals: sun.nio.ch.AsynchronousFileChannelImpl
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
    Exceptions:
      throws java.io.IOException

  final void invalidateAllLocks();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
         0: .line 146
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            ifnull 13
         1: .line 147
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.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 12
      StackMap locals: sun.nio.ch.AsynchronousFileChannelImpl top java.util.Iterator
      StackMap stack:
         2: 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
         3: .line 148
            aload 1 /* fl */
            dup
            astore 3
            monitorenter
         4: .line 149
            aload 1 /* fl */
            invokevirtual java.nio.channels.FileLock.isValid:()Z
            ifeq 8
         5: .line 150
            aload 1 /* fl */
            checkcast sun.nio.ch.FileLockImpl
            astore 4 /* fli */
        start local 4 // sun.nio.ch.FileLockImpl fli
         6: .line 151
            aload 0 /* this */
            aload 4 /* fli */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implRelease:(Lsun/nio/ch/FileLockImpl;)V
         7: .line 152
            aload 4 /* fli */
            invokevirtual sun.nio.ch.FileLockImpl.invalidate:()V
        end local 4 // sun.nio.ch.FileLockImpl fli
         8: .line 148
      StackMap locals: sun.nio.ch.AsynchronousFileChannelImpl java.nio.channels.FileLock java.util.Iterator java.nio.channels.FileLock
      StackMap stack:
            aload 3
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        end local 1 // java.nio.channels.FileLock fl
        12: .line 147
      StackMap locals: sun.nio.ch.AsynchronousFileChannelImpl top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 157
      StackMap locals: sun.nio.ch.AsynchronousFileChannelImpl
      StackMap stack:
            return
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            3   12     1    fl  Ljava/nio/channels/FileLock;
            6    8     4   fli  Lsun/nio/ch/FileLockImpl;
      Exception table:
        from    to  target  type
           4     9      10  any
          10    11      10  any
    Exceptions:
      throws java.io.IOException

  protected final sun.nio.ch.FileLockImpl addToFileLockTable(long, long, boolean);
    descriptor: (JJZ)Lsun/nio/ch/FileLockImpl;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=8, locals=9, args_size=4
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // long position
        start local 3 // long size
        start local 5 // boolean shared
         0: .line 166
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
            invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         1: .line 167
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.closed:Z
            ifeq 4
         2: .line 180
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.end:()V
         3: .line 168
            aconst_null
            areturn
         4: .line 171
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.ensureFileLockTableInitialized:()V
         5: .line 172
            goto 8
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 7 /* x */
        start local 7 // java.io.IOException x
         7: .line 174
            new java.lang.AssertionError
            dup
            aload 7 /* x */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 7 // java.io.IOException x
         8: .line 176
      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/AsynchronousFileChannel;JJZ)V
            astore 6 /* fli */
        start local 6 // sun.nio.ch.FileLockImpl fli
         9: .line 178
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            aload 6 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.add:(Ljava/nio/channels/FileLock;)V
        10: .line 179
            goto 14
        end local 6 // sun.nio.ch.FileLockImpl fli
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 8
        12: .line 180
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.end:()V
        13: .line 181
            aload 8
            athrow
        start local 6 // sun.nio.ch.FileLockImpl fli
        14: .line 180
      StackMap locals: sun.nio.ch.FileLockImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.end:()V
        15: .line 182
            aload 6 /* fli */
            areturn
        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.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0   16     1  position  J
            0   16     3      size  J
            0   16     5    shared  Z
            9   11     6       fli  Lsun/nio/ch/FileLockImpl;
           14   16     6       fli  Lsun/nio/ch/FileLockImpl;
            7    8     7         x  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  Class java.io.IOException
           0     2      11  any
           4    11      11  any
    MethodParameters:
          Name  Flags
      position  
      size      
      shared    

  protected final void removeFromFileLockTable(sun.nio.ch.FileLockImpl);
    descriptor: (Lsun/nio/ch/FileLockImpl;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // sun.nio.ch.FileLockImpl fli
         0: .line 186
            aload 0 /* this */
            getfield sun.nio.ch.AsynchronousFileChannelImpl.fileLockTable:Lsun/nio/ch/FileLockTable;
            aload 1 /* fli */
            invokevirtual sun.nio.ch.FileLockTable.remove:(Ljava/nio/channels/FileLock;)V
         1: .line 187
            return
        end local 1 // sun.nio.ch.FileLockImpl fli
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    2     1   fli  Lsun/nio/ch/FileLockImpl;
    MethodParameters:
      Name  Flags
      fli   

  protected abstract void implRelease(sun.nio.ch.FileLockImpl);
    descriptor: (Lsun/nio/ch/FileLockImpl;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fli   

  final void release(sun.nio.ch.FileLockImpl);
    descriptor: (Lsun/nio/ch/FileLockImpl;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // sun.nio.ch.FileLockImpl fli
         0: .line 200
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.begin:()V
         1: .line 201
            aload 0 /* this */
            aload 1 /* fli */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implRelease:(Lsun/nio/ch/FileLockImpl;)V
         2: .line 202
            aload 0 /* this */
            aload 1 /* fli */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
         3: .line 203
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 204
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.end:()V
         6: .line 205
            aload 2
            athrow
         7: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.end:()V
         8: .line 206
            return
        end local 1 // sun.nio.ch.FileLockImpl fli
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    9     1   fli  Lsun/nio/ch/FileLockImpl;
      Exception table:
        from    to  target  type
           0     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fli   

  abstract <A> java.util.concurrent.Future<java.lang.Integer> implRead(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0400) ACC_ABSTRACT
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JTA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
            Name  Flags
      dst         
      position    
      attachment  
      handler     

  public final java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)Ljava/util/concurrent/Future;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long position
         0: .line 218
            aload 0 /* this */
            aload 1 /* dst */
            lload 2 /* position */
            aconst_null
            aconst_null
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implRead:(Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
            areturn
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    1     1       dst  Ljava/nio/ByteBuffer;
            0    1     2  position  J
    Signature: (Ljava/nio/ByteBuffer;J)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
          Name  Flags
      dst       
      position  

  public final <A> void read(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long position
        start local 4 // java.lang.Object attachment
        start local 5 // java.nio.channels.CompletionHandler handler
         0: .line 227
            aload 5 /* handler */
            ifnonnull 2
         1: .line 228
            new java.lang.NullPointerException
            dup
            ldc "'handler' is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* dst */
            lload 2 /* position */
            aload 4 /* attachment */
            aload 5 /* handler */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implRead:(Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
            pop
         3: .line 230
            return
        end local 5 // java.nio.channels.CompletionHandler handler
        end local 4 // java.lang.Object attachment
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    4     1         dst  Ljava/nio/ByteBuffer;
            0    4     2    position  J
            0    4     4  attachment  TA;
            0    4     5     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JTA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
            Name  Flags
      dst         
      position    
      attachment  
      handler     

  abstract <A> java.util.concurrent.Future<java.lang.Integer> implWrite(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
    flags: (0x0400) ACC_ABSTRACT
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JTA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
            Name  Flags
      src         
      position    
      attachment  
      handler     

  public final java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer, long);
    descriptor: (Ljava/nio/ByteBuffer;J)Ljava/util/concurrent/Future;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long position
         0: .line 240
            aload 0 /* this */
            aload 1 /* src */
            lload 2 /* position */
            aconst_null
            aconst_null
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implWrite:(Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
            areturn
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    1     1       src  Ljava/nio/ByteBuffer;
            0    1     2  position  J
    Signature: (Ljava/nio/ByteBuffer;J)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
          Name  Flags
      src       
      position  

  public final <A> void write(java.nio.ByteBuffer, long, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long position
        start local 4 // java.lang.Object attachment
        start local 5 // java.nio.channels.CompletionHandler handler
         0: .line 249
            aload 5 /* handler */
            ifnonnull 2
         1: .line 250
            new java.lang.NullPointerException
            dup
            ldc "'handler' is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            lload 2 /* position */
            aload 4 /* attachment */
            aload 5 /* handler */
            invokevirtual sun.nio.ch.AsynchronousFileChannelImpl.implWrite:(Ljava/nio/ByteBuffer;JLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)Ljava/util/concurrent/Future;
            pop
         3: .line 252
            return
        end local 5 // java.nio.channels.CompletionHandler handler
        end local 4 // java.lang.Object attachment
        end local 2 // long position
        end local 1 // java.nio.ByteBuffer src
        end local 0 // sun.nio.ch.AsynchronousFileChannelImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lsun/nio/ch/AsynchronousFileChannelImpl;
            0    4     1         src  Ljava/nio/ByteBuffer;
            0    4     2    position  J
            0    4     4  attachment  TA;
            0    4     5     handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JTA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
            Name  Flags
      src         
      position    
      attachment  
      handler     
}
SourceFile: "AsynchronousFileChannelImpl.java"