public class sun.nio.ch.WindowsAsynchronousFileChannelImpl extends sun.nio.ch.AsynchronousFileChannelImpl implements sun.nio.ch.Iocp$OverlappedChannel, sun.nio.ch.Groupable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.nio.ch.WindowsAsynchronousFileChannelImpl
super_class: sun.nio.ch.AsynchronousFileChannelImpl
{
private static final jdk.internal.misc.JavaIOFileDescriptorAccess fdAccess;
descriptor: Ljdk/internal/misc/JavaIOFileDescriptorAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ERROR_HANDLE_EOF;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 38
private static final sun.nio.ch.FileDispatcher nd;
descriptor: Lsun/nio/ch/FileDispatcher;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final long handle;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int completionKey;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.Iocp iocp;
descriptor: Lsun/nio/ch/Iocp;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isDefaultIocp;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.ch.PendingIoCache ioCache;
descriptor: Lsun/nio/ch/PendingIoCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final int NO_LOCK;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1
static final int LOCKED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
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: ldc Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
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.WindowsAsynchronousFileChannelImpl.$assertionsDisabled:Z
3: invokestatic jdk.internal.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/misc/JavaIOFileDescriptorAccess;
4: putstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
5: new sun.nio.ch.FileDispatcherImpl
dup
invokespecial sun.nio.ch.FileDispatcherImpl.<init>:()V
putstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
6: invokestatic sun.nio.ch.IOUtil.load:()V
7: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.io.FileDescriptor, boolean, boolean, sun.nio.ch.Iocp, boolean);
descriptor: (Ljava/io/FileDescriptor;ZZLsun/nio/ch/Iocp;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
iload 2
iload 3
aload 4
invokevirtual sun.nio.ch.Iocp.executor:()Ljava/util/concurrent/ExecutorService;
invokespecial sun.nio.ch.AsynchronousFileChannelImpl.<init>:(Ljava/io/FileDescriptor;ZZLjava/util/concurrent/ExecutorService;)V
1: aload 0
getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 1
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.getHandle:(Ljava/io/FileDescriptor;)J
putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.handle:J
2: aload 0
aload 4
putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
3: aload 0
iload 5
putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.isDefaultIocp:Z
4: aload 0
new sun.nio.ch.PendingIoCache
dup
invokespecial sun.nio.ch.PendingIoCache.<init>:()V
putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
5: aload 0
aload 4
aload 0
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.handle:J
invokevirtual sun.nio.ch.Iocp.associate:(Lsun/nio/ch/Iocp$OverlappedChannel;J)I
putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.completionKey:I
6: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 7 1 fdObj Ljava/io/FileDescriptor;
0 7 2 reading Z
0 7 3 writing Z
0 7 4 iocp Lsun/nio/ch/Iocp;
0 7 5 isDefaultIocp Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fdObj
reading
writing
iocp
isDefaultIocp
public static java.nio.channels.AsynchronousFileChannel open(java.io.FileDescriptor, boolean, boolean, sun.nio.ch.ThreadPool);
descriptor: (Ljava/io/FileDescriptor;ZZLsun/nio/ch/ThreadPool;)Ljava/nio/channels/AsynchronousFileChannel;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 4
1: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder.defaultIocp:Lsun/nio/ch/Iocp;
astore 4
start local 4 2: iconst_1
istore 5
start local 5 3: goto 6
end local 5 end local 4 4: StackMap locals:
StackMap stack:
new sun.nio.ch.Iocp
dup
aconst_null
aload 3
invokespecial sun.nio.ch.Iocp.<init>:(Ljava/nio/channels/spi/AsynchronousChannelProvider;Lsun/nio/ch/ThreadPool;)V
invokevirtual sun.nio.ch.Iocp.start:()Lsun/nio/ch/Iocp;
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: StackMap locals: sun.nio.ch.Iocp int
StackMap stack:
new sun.nio.ch.WindowsAsynchronousFileChannelImpl
dup
aload 0
iload 1
iload 2
aload 4
iload 5
7: invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl.<init>:(Ljava/io/FileDescriptor;ZZLsun/nio/ch/Iocp;Z)V
8: areturn
9: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 10: iload 5
ifne 12
11: aload 4
invokevirtual sun.nio.ch.Iocp.implClose:()V
12: StackMap locals: java.io.IOException
StackMap stack:
aload 6
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 fdo Ljava/io/FileDescriptor;
0 13 1 reading Z
0 13 2 writing Z
0 13 3 pool Lsun/nio/ch/ThreadPool;
2 4 4 iocp Lsun/nio/ch/Iocp;
5 13 4 iocp Lsun/nio/ch/Iocp;
3 4 5 isDefaultIocp Z
6 13 5 isDefaultIocp Z
10 13 6 x Ljava/io/IOException;
Exception table:
from to target type
6 8 9 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fdo
reading
writing
pool
public <V, A> sun.nio.ch.PendingFuture<V, A> getByOverlapped(long);
descriptor: (J)Lsun/nio/ch/PendingFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
lload 1
invokevirtual sun.nio.ch.PendingIoCache.remove:(J)Lsun/nio/ch/PendingFuture;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 1 1 overlapped J
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>(J)Lsun/nio/ch/PendingFuture<TV;TA;>;
MethodParameters:
Name Flags
overlapped
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closed:Z
ifeq 4
2: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
3: return
4: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closed:Z
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 1
7: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: aload 1
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.closeLock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.invalidateAllLocks:()V
11: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.FileDispatcher.close:(Ljava/io/FileDescriptor;)V
12: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.ioCache:Lsun/nio/ch/PendingIoCache;
invokevirtual sun.nio.ch.PendingIoCache.close:()V
13: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.completionKey:I
invokevirtual sun.nio.ch.Iocp.disassociate:(I)V
14: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.isDefaultIocp:Z
ifne 16
15: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
invokevirtual sun.nio.ch.Iocp.detachFromThreadPool:()V
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
Exception table:
from to target type
1 2 6 any
4 6 6 any
Exceptions:
throws java.io.IOException
public sun.nio.ch.AsynchronousChannelGroupImpl group();
descriptor: ()Lsun/nio/ch/AsynchronousChannelGroupImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.iocp:Lsun/nio/ch/Iocp;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
private static java.io.IOException toIOException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Ljava/io/IOException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
instanceof java.io.IOException
ifeq 4
1: aload 0
instanceof java.nio.channels.ClosedChannelException
ifeq 3
2: new java.nio.channels.AsynchronousCloseException
dup
invokespecial java.nio.channels.AsynchronousCloseException.<init>:()V
astore 0
3: StackMap locals:
StackMap stack:
aload 0
checkcast java.io.IOException
areturn
4: StackMap locals:
StackMap stack:
new java.io.IOException
dup
aload 0
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 x Ljava/lang/Throwable;
MethodParameters:
Name Flags
x
public long size();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
1: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
lstore 2
2: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
3: lload 2
lreturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
5: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
6: aload 1
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
Exception table:
from to target type
0 2 4 any
Exceptions:
throws java.io.IOException
public java.nio.channels.AsynchronousFileChannel truncate(long);
descriptor: (J)Ljava/nio/channels/AsynchronousFileChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "Negative size"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
ifne 4
3: new java.nio.channels.NonWritableChannelException
dup
invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
5: lload 1
getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
invokevirtual sun.nio.ch.FileDispatcher.size:(Ljava/io/FileDescriptor;)J
lcmp
ifle 9
6: aload 0
astore 4
7: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
8: aload 4
areturn
9: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
lload 1
invokevirtual sun.nio.ch.FileDispatcher.truncate:(Ljava/io/FileDescriptor;J)I
pop
10: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 3
12: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
13: aload 3
athrow
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
15: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 16 1 size J
Exception table:
from to target type
4 7 11 any
9 11 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
size
public void force(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
1: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
iload 1
invokevirtual sun.nio.ch.FileDispatcher.force:(Ljava/io/FileDescriptor;Z)I
pop
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 2
4: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
5: aload 2
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 8 1 metaData Z
Exception table:
from to target type
0 3 3 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
metaData
<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: (0x0000)
Code:
stack=7, locals=11, args_size=6
start local 0 start local 1 start local 3 start local 5 start local 6 start local 7 0: iload 5
ifeq 2
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
ifne 2
1: new java.nio.channels.NonReadableChannelException
dup
invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 5
ifne 4
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
ifne 4
3: new java.nio.channels.NonWritableChannelException
dup
invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
lload 1
lload 3
iload 5
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.addToFileLockTable:(JJZ)Lsun/nio/ch/FileLockImpl;
astore 8
start local 8 5: aload 8
ifnonnull 11
6: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
astore 9
start local 9 7: aload 7
ifnonnull 9
8: aload 9
invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
9: StackMap locals: sun.nio.ch.FileLockImpl java.lang.Throwable
StackMap stack:
aload 0
aload 7
aload 6
aconst_null
aload 9
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
10: aconst_null
areturn
end local 9 11: StackMap locals:
StackMap stack:
new sun.nio.ch.PendingFuture
dup
aload 0
aload 7
aload 6
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
12: astore 9
start local 9 13: new sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask
dup
aload 0
lload 1
aload 8
aload 9
invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask.<init>:(Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;JLsun/nio/ch/FileLockImpl;Lsun/nio/ch/PendingFuture;)V
astore 10
start local 10 14: aload 9
aload 10
invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
15: aload 10
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask.run:()V
16: aload 9
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 17 1 position J
0 17 3 size J
0 17 5 shared Z
0 17 6 attachment TA;
0 17 7 handler Ljava/nio/channels/CompletionHandler<Ljava/nio/channels/FileLock;-TA;>;
5 17 8 fli Lsun/nio/ch/FileLockImpl;
7 11 9 exc Ljava/lang/Throwable;
13 17 9 result Lsun/nio/ch/PendingFuture<Ljava/nio/channels/FileLock;TA;>;
14 17 10 lockTask Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$LockTask<TA;>;
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 final
size final
shared final
attachment
handler final
public java.nio.channels.FileLock tryLock(long, long, boolean);
descriptor: (JJZ)Ljava/nio/channels/FileLock;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=4
start local 0 start local 1 start local 3 start local 5 0: iload 5
ifeq 2
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
ifne 2
1: new java.nio.channels.NonReadableChannelException
dup
invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
iload 5
ifne 4
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
ifne 4
3: new java.nio.channels.NonWritableChannelException
dup
invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
lload 1
lload 3
iload 5
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.addToFileLockTable:(JJZ)Lsun/nio/ch/FileLockImpl;
astore 6
start local 6 5: aload 6
ifnonnull 7
6: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
7: StackMap locals: sun.nio.ch.FileLockImpl
StackMap stack:
iconst_0
istore 7
start local 7 8: aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.begin:()V
9: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
iconst_0
lload 1
lload 3
iload 5
invokevirtual sun.nio.ch.FileDispatcher.lock:(Ljava/io/FileDescriptor;ZJJZ)I
istore 8
start local 8 10: iload 8
iconst_m1
if_icmpne 15
11: iload 7
ifne 13
12: aload 0
aload 6
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
13: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
14: aconst_null
areturn
15: StackMap locals:
StackMap stack:
iconst_1
istore 7
16: aload 6
astore 10
17: iload 7
ifne 19
18: aload 0
aload 6
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
19: StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int int top java.nio.channels.FileLock
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
20: aload 10
areturn
end local 8 21: StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int
StackMap stack: java.lang.Throwable
astore 9
22: iload 7
ifne 24
23: aload 0
aload 6
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.removeFromFileLockTable:(Lsun/nio/ch/FileLockImpl;)V
24: StackMap locals: sun.nio.ch.WindowsAsynchronousFileChannelImpl long long int sun.nio.ch.FileLockImpl int top java.lang.Throwable
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.end:()V
25: aload 9
athrow
end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 26 1 position J
0 26 3 size J
0 26 5 shared Z
5 26 6 fli Lsun/nio/ch/FileLockImpl;
8 26 7 gotLock Z
10 21 8 res I
Exception table:
from to target type
8 11 21 any
15 17 21 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
position
size
shared
protected void implRelease(sun.nio.ch.FileLockImpl);
descriptor: (Lsun/nio/ch/FileLockImpl;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.nd:Lsun/nio/ch/FileDispatcher;
aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.fdObj:Ljava/io/FileDescriptor;
aload 1
invokevirtual sun.nio.ch.FileLockImpl.position:()J
aload 1
invokevirtual sun.nio.ch.FileLockImpl.size:()J
invokevirtual sun.nio.ch.FileDispatcher.release:(Ljava/io/FileDescriptor;JJ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 2 1 fli Lsun/nio/ch/FileLockImpl;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fli
<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: (0x0000)
Code:
stack=9, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.reading:Z
ifne 2
1: new java.nio.channels.NonReadableChannelException
dup
invokespecial java.nio.channels.NonReadableChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifge 4
3: new java.lang.IllegalArgumentException
dup
ldc "Negative position"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
ifeq 6
5: new java.lang.IllegalArgumentException
dup
ldc "Read-only buffer"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.isOpen:()Z
ifne 12
7: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
astore 6
start local 6 8: aload 5
ifnonnull 10
9: aload 6
invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
10: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 5
aload 4
aconst_null
aload 6
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
11: aconst_null
areturn
end local 6 12: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 6
start local 6 13: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 7
start local 7 14: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.$assertionsDisabled:Z
ifne 15
iload 6
iload 7
if_icmple 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals: int int
StackMap stack:
iload 6
iload 7
if_icmpgt 16
iload 7
iload 6
isub
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 8
start local 8 18: iload 8
ifne 23
19: aload 5
ifnonnull 21
20: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;)Lsun/nio/ch/CompletedFuture;
areturn
21: StackMap locals: int
StackMap stack:
aload 0
aload 5
aload 4
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
22: aconst_null
areturn
23: StackMap locals:
StackMap stack:
new sun.nio.ch.PendingFuture
dup
aload 0
aload 5
aload 4
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
24: astore 9
start local 9 25: new sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask
dup
aload 0
aload 1
iload 6
iload 8
lload 2
aload 9
invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask.<init>:(Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;Ljava/nio/ByteBuffer;IIJLsun/nio/ch/PendingFuture;)V
astore 10
start local 10 26: aload 9
aload 10
invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
27: aload 10
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask.run:()V
28: aload 9
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 29 1 dst Ljava/nio/ByteBuffer;
0 29 2 position J
0 29 4 attachment TA;
0 29 5 handler Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
8 12 6 exc Ljava/lang/Throwable;
13 29 6 pos I
14 29 7 lim I
18 29 8 rem I
25 29 9 result Lsun/nio/ch/PendingFuture<Ljava/lang/Integer;TA;>;
26 29 10 readTask Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$ReadTask<TA;>;
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
<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: (0x0000)
Code:
stack=9, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
getfield sun.nio.ch.WindowsAsynchronousFileChannelImpl.writing:Z
ifne 2
1: new java.nio.channels.NonWritableChannelException
dup
invokespecial java.nio.channels.NonWritableChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
lload 2
lconst_0
lcmp
ifge 4
3: new java.lang.IllegalArgumentException
dup
ldc "Negative position"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl.isOpen:()Z
ifne 10
5: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
astore 6
start local 6 6: aload 5
ifnonnull 8
7: aload 6
invokestatic sun.nio.ch.CompletedFuture.withFailure:(Ljava/lang/Throwable;)Lsun/nio/ch/CompletedFuture;
areturn
8: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 5
aload 4
aconst_null
aload 6
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
9: aconst_null
areturn
end local 6 10: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 6
start local 6 11: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 7
start local 7 12: getstatic sun.nio.ch.WindowsAsynchronousFileChannelImpl.$assertionsDisabled:Z
ifne 13
iload 6
iload 7
if_icmple 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals: int int
StackMap stack:
iload 6
iload 7
if_icmpgt 14
iload 7
iload 6
isub
goto 15
StackMap locals:
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: istore 8
start local 8 16: iload 8
ifne 21
17: aload 5
ifnonnull 19
18: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic sun.nio.ch.CompletedFuture.withResult:(Ljava/lang/Object;)Lsun/nio/ch/CompletedFuture;
areturn
19: StackMap locals: int
StackMap stack:
aload 0
aload 5
aload 4
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokestatic sun.nio.ch.Invoker.invoke:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Throwable;)V
20: aconst_null
areturn
21: StackMap locals:
StackMap stack:
new sun.nio.ch.PendingFuture
dup
aload 0
aload 5
aload 4
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
22: astore 9
start local 9 23: new sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask
dup
aload 0
aload 1
iload 6
iload 8
lload 2
aload 9
invokespecial sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask.<init>:(Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;Ljava/nio/ByteBuffer;IIJLsun/nio/ch/PendingFuture;)V
astore 10
start local 10 24: aload 9
aload 10
invokevirtual sun.nio.ch.PendingFuture.setContext:(Ljava/lang/Object;)V
25: aload 10
invokevirtual sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask.run:()V
26: aload 9
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/nio/ch/WindowsAsynchronousFileChannelImpl;
0 27 1 src Ljava/nio/ByteBuffer;
0 27 2 position J
0 27 4 attachment TA;
0 27 5 handler Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
6 10 6 exc Ljava/lang/Throwable;
11 27 6 pos I
12 27 7 lim I
16 27 8 rem I
23 27 9 result Lsun/nio/ch/PendingFuture<Ljava/lang/Integer;TA;>;
24 27 10 writeTask Lsun/nio/ch/WindowsAsynchronousFileChannelImpl$WriteTask<TA;>;
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
private static native int readFile(long, long, int, long, long);
descriptor: (JJIJJ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handle
address
len
offset
overlapped
private static native int writeFile(long, long, int, long, long);
descriptor: (JJIJJ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handle
address
len
offset
overlapped
private static native int lockFile(long, long, long, boolean, long);
descriptor: (JJJZJ)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
handle
position
size
shared
overlapped
}
SourceFile: "WindowsAsynchronousFileChannelImpl.java"
NestMembers:
sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask
InnerClasses:
abstract OverlappedChannel = sun.nio.ch.Iocp$OverlappedChannel of sun.nio.ch.Iocp
private DefaultIocpHolder = sun.nio.ch.WindowsAsynchronousFileChannelImpl$DefaultIocpHolder of sun.nio.ch.WindowsAsynchronousFileChannelImpl
private LockTask = sun.nio.ch.WindowsAsynchronousFileChannelImpl$LockTask of sun.nio.ch.WindowsAsynchronousFileChannelImpl
private ReadTask = sun.nio.ch.WindowsAsynchronousFileChannelImpl$ReadTask of sun.nio.ch.WindowsAsynchronousFileChannelImpl
private WriteTask = sun.nio.ch.WindowsAsynchronousFileChannelImpl$WriteTask of sun.nio.ch.WindowsAsynchronousFileChannelImpl