class sun.nio.fs.WindowsWatchService$Poller extends sun.nio.fs.AbstractPoller
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.fs.WindowsWatchService$Poller
super_class: sun.nio.fs.AbstractPoller
{
private static final jdk.internal.misc.Unsafe UNSAFE;
descriptor: Ljdk/internal/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final short SIZEOF_DWORD;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final short SIZEOF_OVERLAPPED;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final short OFFSETOF_HEVENT;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final short OFFSETOF_NEXTENTRYOFFSET;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final short OFFSETOF_ACTION;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final short OFFSETOF_FILENAMELENGTH;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final short OFFSETOF_FILENAME;
descriptor: S
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int CHANGES_BUFFER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16384
private final sun.nio.fs.WindowsFileSystem fs;
descriptor: Lsun/nio/fs/WindowsFileSystem;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.nio.fs.WindowsWatchService watcher;
descriptor: Lsun/nio/fs/WindowsWatchService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long port;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.Integer, sun.nio.fs.WindowsWatchService$WindowsWatchKey> ck2key;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;>;
private final java.util.Map<sun.nio.fs.WindowsWatchService$FileKey, sun.nio.fs.WindowsWatchService$WindowsWatchKey> fk2key;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Lsun/nio/fs/WindowsWatchService$FileKey;Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;>;
private int lastCompletionKey;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
putstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
1: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
invokevirtual jdk.internal.misc.Unsafe.addressSize:()I
iconst_4
if_icmpne 2
bipush 16
goto 3
StackMap locals:
StackMap stack:
2: bipush 24
3: StackMap locals:
StackMap stack: int
putstatic sun.nio.fs.WindowsWatchService$Poller.OFFSETOF_HEVENT:S
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.nio.fs.WindowsFileSystem, sun.nio.fs.WindowsWatchService, long);
descriptor: (Lsun/nio/fs/WindowsFileSystem;Lsun/nio/fs/WindowsWatchService;J)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial sun.nio.fs.AbstractPoller.<init>:()V
1: aload 0
aload 1
putfield sun.nio.fs.WindowsWatchService$Poller.fs:Lsun/nio/fs/WindowsFileSystem;
2: aload 0
aload 2
putfield sun.nio.fs.WindowsWatchService$Poller.watcher:Lsun/nio/fs/WindowsWatchService;
3: aload 0
lload 3
putfield sun.nio.fs.WindowsWatchService$Poller.port:J
4: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.nio.fs.WindowsWatchService$Poller.fk2key:Ljava/util/Map;
6: aload 0
iconst_0
putfield sun.nio.fs.WindowsWatchService$Poller.lastCompletionKey:I
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 8 1 fs Lsun/nio/fs/WindowsFileSystem;
0 8 2 watcher Lsun/nio/fs/WindowsWatchService;
0 8 3 port J
MethodParameters:
Name Flags
fs
watcher
port
void wakeup();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.port:J
lconst_0
invokestatic sun.nio.fs.WindowsNativeDispatcher.PostQueuedCompletionStatus:(JJ)V
1: goto 4
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
2: astore 1
start local 1 3: new java.io.IOException
dup
aload 1
invokevirtual sun.nio.fs.WindowsException.getMessage:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/fs/WindowsWatchService$Poller;
3 4 1 x Lsun/nio/fs/WindowsException;
Exception table:
from to target type
0 1 2 Class sun.nio.fs.WindowsException
Exceptions:
throws java.io.IOException
implRegister(java.nio.file.Path, java.util.Set<? extends java.nio.file.WatchEvent$Kind<?>>, java.nio.file.WatchEvent$Modifier[]);
descriptor: (Ljava/nio/file/Path;Ljava/util/Set;[Ljava/nio/file/WatchEvent$Modifier;)Ljava/lang/Object;
flags: (0x0080) ACC_VARARGS
Code:
stack=11, locals=24, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
checkcast sun.nio.fs.WindowsPath
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: aload 3
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 14
StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int top int int java.nio.file.WatchEvent$Modifier[]
StackMap stack:
3: aload 9
iload 7
aaload
astore 6
start local 6 4: getstatic sun.nio.fs.ExtendedOptions.FILE_TREE:Lsun/nio/fs/ExtendedOptions$InternalOption;
aload 6
invokevirtual sun.nio.fs.ExtendedOptions$InternalOption.matches:(Ljava/lang/Object;)Z
ifeq 7
5: iconst_1
istore 5
6: goto 13
7: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int java.nio.file.WatchEvent$Modifier int int java.nio.file.WatchEvent$Modifier[]
StackMap stack:
aload 6
ifnonnull 9
8: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
areturn
9: StackMap locals:
StackMap stack:
getstatic sun.nio.fs.ExtendedOptions.SENSITIVITY_HIGH:Lsun/nio/fs/ExtendedOptions$InternalOption;
aload 6
invokevirtual sun.nio.fs.ExtendedOptions$InternalOption.matches:(Ljava/lang/Object;)Z
ifne 13
10: getstatic sun.nio.fs.ExtendedOptions.SENSITIVITY_MEDIUM:Lsun/nio/fs/ExtendedOptions$InternalOption;
aload 6
invokevirtual sun.nio.fs.ExtendedOptions$InternalOption.matches:(Ljava/lang/Object;)Z
ifne 13
11: getstatic sun.nio.fs.ExtendedOptions.SENSITIVITY_LOW:Lsun/nio/fs/ExtendedOptions$InternalOption;
aload 6
invokevirtual sun.nio.fs.ExtendedOptions$InternalOption.matches:(Ljava/lang/Object;)Z
ifne 13
12: new java.lang.UnsupportedOperationException
dup
ldc "Modifier not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
areturn
end local 6 13: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int top int int java.nio.file.WatchEvent$Modifier[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
iload 8
if_icmplt 3
15: aload 4
invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
16: iconst_1
17: bipush 7
18: iconst_3
19: ldc 1107296256
20: invokestatic sun.nio.fs.WindowsNativeDispatcher.CreateFile:(Ljava/lang/String;IIII)J
lstore 6
start local 6 21: goto 24
end local 6 StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int
StackMap stack: sun.nio.fs.WindowsException
22: astore 8
start local 8 23: aload 8
aload 4
invokevirtual sun.nio.fs.WindowsException.asIOException:(Lsun/nio/fs/WindowsPath;)Ljava/io/IOException;
areturn
end local 8 start local 6 24: StackMap locals: long
StackMap stack:
iconst_0
istore 8
start local 8 25: lload 6
invokestatic sun.nio.fs.WindowsFileAttributes.readAttributes:(J)Lsun/nio/fs/WindowsFileAttributes;
astore 9
start local 9 26: goto 31
end local 9 StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int
StackMap stack: sun.nio.fs.WindowsException
27: astore 10
start local 10 28: aload 10
aload 4
invokevirtual sun.nio.fs.WindowsException.asIOException:(Lsun/nio/fs/WindowsPath;)Ljava/io/IOException;
astore 23
29: iload 8
ifne 30
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
30: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int top sun.nio.fs.WindowsException top top top top top top top top top top top top java.lang.Object
StackMap stack:
aload 23
areturn
end local 10 start local 9 31: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes
StackMap stack:
aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.isDirectory:()Z
ifne 35
32: new java.nio.file.NotDirectoryException
dup
aload 4
invokevirtual sun.nio.fs.WindowsPath.getPathForExceptionMessage:()Ljava/lang/String;
invokespecial java.nio.file.NotDirectoryException.<init>:(Ljava/lang/String;)V
astore 23
33: iload 8
ifne 34
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
34: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes top top top top top top top top top top top top top java.lang.Object
StackMap stack:
aload 23
areturn
35: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes
StackMap stack:
new sun.nio.fs.WindowsWatchService$FileKey
dup
aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.volSerialNumber:()I
36: aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.fileIndexHigh:()I
37: aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.fileIndexLow:()I
38: invokespecial sun.nio.fs.WindowsWatchService$FileKey.<init>:(III)V
astore 10
start local 10 39: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.fk2key:Ljava/util/Map;
aload 10
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.nio.fs.WindowsWatchService$WindowsWatchKey
astore 11
start local 11 40: aload 11
ifnull 45
iload 5
aload 11
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.watchSubtree:()Z
if_icmpne 45
41: aload 11
aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.setEvents:(Ljava/util/Set;)V
42: aload 11
astore 23
43: iload 8
ifne 44
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
44: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey top top top top top top top top top top top java.lang.Object
StackMap stack:
aload 23
areturn
45: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey
StackMap stack:
aload 0
dup
getfield sun.nio.fs.WindowsWatchService$Poller.lastCompletionKey:I
iconst_1
iadd
dup_x1
putfield sun.nio.fs.WindowsWatchService$Poller.lastCompletionKey:I
istore 12
start local 12 46: iload 12
ifne 48
47: aload 0
dup
getfield sun.nio.fs.WindowsWatchService$Poller.lastCompletionKey:I
iconst_1
iadd
dup_x1
putfield sun.nio.fs.WindowsWatchService$Poller.lastCompletionKey:I
istore 12
48: StackMap locals: int
StackMap stack:
lload 6
aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.port:J
iload 12
i2l
invokestatic sun.nio.fs.WindowsNativeDispatcher.CreateIoCompletionPort:(JJJ)J
pop2
49: goto 54
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
50: astore 13
start local 13 51: new java.io.IOException
dup
aload 13
invokevirtual sun.nio.fs.WindowsException.getMessage:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 23
52: iload 8
ifne 53
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
53: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey int sun.nio.fs.WindowsException top top top top top top top top top java.lang.Object
StackMap stack:
aload 23
areturn
end local 13 54: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey int
StackMap stack:
sipush 16420
istore 13
start local 13 55: iload 13
invokestatic sun.nio.fs.NativeBuffers.getNativeBuffer:(I)Lsun/nio/fs/NativeBuffer;
astore 14
start local 14 56: aload 14
invokevirtual sun.nio.fs.NativeBuffer.address:()J
lstore 15
start local 15 57: lload 15
iload 13
i2l
ladd
ldc 32
lsub
lstore 17
start local 17 58: lload 17
ldc 4
lsub
lstore 19
start local 19 59: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 17
ldc 32
iconst_0
invokevirtual jdk.internal.misc.Unsafe.setMemory:(JJB)V
60: aload 0
lload 17
invokevirtual sun.nio.fs.WindowsWatchService$Poller.createAndAttachEvent:(J)V
61: lload 6
62: lload 15
63: sipush 16384
64: iload 5
65: sipush 351
66: lload 19
67: lload 17
68: invokestatic sun.nio.fs.WindowsNativeDispatcher.ReadDirectoryChangesW:(JJIZIJJ)V
69: goto 76
StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey int int sun.nio.fs.NativeBuffer long long long
StackMap stack: sun.nio.fs.WindowsException
70: astore 21
start local 21 71: aload 0
lload 17
invokevirtual sun.nio.fs.WindowsWatchService$Poller.closeAttachedEvent:(J)V
72: aload 14
invokevirtual sun.nio.fs.NativeBuffer.release:()V
73: new java.io.IOException
dup
aload 21
invokevirtual sun.nio.fs.WindowsException.getMessage:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 23
74: iload 8
ifne 75
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
75: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey int int sun.nio.fs.NativeBuffer long long long sun.nio.fs.WindowsException top java.lang.Object
StackMap stack:
aload 23
areturn
end local 21 76: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey int int sun.nio.fs.NativeBuffer long long long
StackMap stack:
aload 11
ifnonnull 84
77: new sun.nio.fs.WindowsWatchService$WindowsWatchKey
dup
aload 4
aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.watcher:Lsun/nio/fs/WindowsWatchService;
aload 10
invokespecial sun.nio.fs.WindowsWatchService$WindowsWatchKey.<init>:(Ljava/nio/file/Path;Lsun/nio/fs/AbstractWatchService;Lsun/nio/fs/WindowsWatchService$FileKey;)V
78: lload 6
aload 2
iload 5
aload 14
lload 19
79: lload 17
iload 12
80: invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.init:(JLjava/util/Set;ZLsun/nio/fs/NativeBuffer;JJI)Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
81: astore 21
start local 21 82: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.fk2key:Ljava/util/Map;
aload 10
aload 21
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
83: goto 89
end local 21 84: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
aload 11
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.completionKey:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
85: aload 0
aload 11
invokevirtual sun.nio.fs.WindowsWatchService$Poller.releaseResources:(Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;)V
86: aload 11
lload 6
aload 2
iload 5
aload 14
87: lload 19
lload 17
iload 12
88: invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.init:(JLjava/util/Set;ZLsun/nio/fs/NativeBuffer;JJI)Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
astore 21
start local 21 89: StackMap locals: sun.nio.fs.WindowsWatchService$WindowsWatchKey
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 21
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
90: iconst_1
istore 8
91: aload 21
astore 23
92: iload 8
ifne 93
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
93: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int sun.nio.fs.WindowsFileAttributes sun.nio.fs.WindowsWatchService$FileKey sun.nio.fs.WindowsWatchService$WindowsWatchKey int int sun.nio.fs.NativeBuffer long long long sun.nio.fs.WindowsWatchService$WindowsWatchKey top java.lang.Object
StackMap stack:
aload 23
areturn
end local 21 end local 19 end local 17 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 94: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int
StackMap stack: java.lang.Throwable
astore 22
95: iload 8
ifne 96
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
96: StackMap locals: sun.nio.fs.WindowsWatchService$Poller java.nio.file.Path java.util.Set java.nio.file.WatchEvent$Modifier[] sun.nio.fs.WindowsPath int long int top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 22
athrow
end local 8 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 97 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 97 1 obj Ljava/nio/file/Path;
0 97 2 events Ljava/util/Set<+Ljava/nio/file/WatchEvent$Kind<*>;>;
0 97 3 modifiers [Ljava/nio/file/WatchEvent$Modifier;
1 97 4 dir Lsun/nio/fs/WindowsPath;
2 97 5 watchSubtree Z
4 13 6 modifier Ljava/nio/file/WatchEvent$Modifier;
21 22 6 handle J
24 97 6 handle J
23 24 8 x Lsun/nio/fs/WindowsException;
25 97 8 registered Z
26 27 9 attrs Lsun/nio/fs/WindowsFileAttributes;
31 94 9 attrs Lsun/nio/fs/WindowsFileAttributes;
28 31 10 x Lsun/nio/fs/WindowsException;
39 94 10 fk Lsun/nio/fs/WindowsWatchService$FileKey;
40 94 11 existing Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
46 94 12 completionKey I
51 54 13 x Lsun/nio/fs/WindowsException;
55 94 13 size I
56 94 14 buffer Lsun/nio/fs/NativeBuffer;
57 94 15 bufferAddress J
58 94 17 overlappedAddress J
59 94 19 countAddress J
71 76 21 x Lsun/nio/fs/WindowsException;
82 84 21 watchKey Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
89 94 21 watchKey Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
Exception table:
from to target type
15 21 22 Class sun.nio.fs.WindowsException
25 26 27 Class sun.nio.fs.WindowsException
48 49 50 Class sun.nio.fs.WindowsException
60 69 70 Class sun.nio.fs.WindowsException
25 29 94 any
31 33 94 any
35 43 94 any
45 52 94 any
54 74 94 any
76 92 94 any
Signature: (Ljava/nio/file/Path;Ljava/util/Set<+Ljava/nio/file/WatchEvent$Kind<*>;>;[Ljava/nio/file/WatchEvent$Modifier;)Ljava/lang/Object;
MethodParameters:
Name Flags
obj
events
modifiers
private void releaseResources(sun.nio.fs.WindowsWatchService$WindowsWatchKey);
descriptor: (Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.isErrorStartingOverlapped:()Z
ifne 5
1: aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.handle:()J
invokestatic sun.nio.fs.WindowsNativeDispatcher.CancelIo:(J)V
2: aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.handle:()J
aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.overlappedAddress:()J
invokestatic sun.nio.fs.WindowsNativeDispatcher.GetOverlappedResult:(JJ)I
pop
3: goto 5
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
4: pop
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.handle:()J
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
6: aload 0
aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.overlappedAddress:()J
invokevirtual sun.nio.fs.WindowsWatchService$Poller.closeAttachedEvent:(J)V
7: aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.buffer:()Lsun/nio/fs/NativeBuffer;
invokevirtual sun.nio.fs.NativeBuffer.free:()V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 9 1 key Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
Exception table:
from to target type
1 3 4 Class sun.nio.fs.WindowsException
MethodParameters:
Name Flags
key
private void createAndAttachEvent(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
iconst_0
invokestatic sun.nio.fs.WindowsNativeDispatcher.CreateEvent:(ZZ)J
lstore 3
start local 3 1: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.nio.fs.WindowsWatchService$Poller.OFFSETOF_HEVENT:S
i2l
ladd
lload 3
invokevirtual jdk.internal.misc.Unsafe.putAddress:(JJ)V
2: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 3 1 ov J
1 3 3 hEvent J
Exceptions:
throws sun.nio.fs.WindowsException
MethodParameters:
Name Flags
ov
private void closeAttachedEvent(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 1
getstatic sun.nio.fs.WindowsWatchService$Poller.OFFSETOF_HEVENT:S
i2l
ladd
invokevirtual jdk.internal.misc.Unsafe.getAddress:(J)J
lstore 3
start local 3 1: lload 3
lconst_0
lcmp
ifeq 3
lload 3
ldc -1
lcmp
ifeq 3
2: lload 3
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
3: StackMap locals: long
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 4 1 ov J
1 4 3 hEvent J
MethodParameters:
Name Flags
ov
void implCancelKey(java.nio.file.WatchKey);
descriptor: (Ljava/nio/file/WatchKey;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast sun.nio.fs.WindowsWatchService$WindowsWatchKey
astore 2
start local 2 1: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.isValid:()Z
ifeq 5
2: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.fk2key:Ljava/util/Map;
aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.fileKey:()Lsun/nio/fs/WindowsWatchService$FileKey;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.completionKey:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.invalidate:()V
5: StackMap locals: sun.nio.fs.WindowsWatchService$WindowsWatchKey
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 6 1 obj Ljava/nio/file/WatchKey;
1 6 2 key Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
MethodParameters:
Name Flags
obj
void implCloseAll();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokedynamic accept()Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/nio/fs/WindowsWatchService$WindowsWatchKey.invalidate()V (5)
(Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;)V
invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
1: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.fk2key:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
3: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.port:J
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/fs/WindowsWatchService$Poller;
private java.nio.file.WatchEvent$Kind<?> translateActionToEvent(int);
descriptor: (I)Ljava/nio/file/WatchEvent$Kind;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
tableswitch { // 1 - 5
1: 2
2: 3
3: 1
4: 3
5: 2
default: 4
}
1: StackMap locals:
StackMap stack:
getstatic java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY:Ljava/nio/file/WatchEvent$Kind;
areturn
2: StackMap locals:
StackMap stack:
getstatic java.nio.file.StandardWatchEventKinds.ENTRY_CREATE:Ljava/nio/file/WatchEvent$Kind;
areturn
3: StackMap locals:
StackMap stack:
getstatic java.nio.file.StandardWatchEventKinds.ENTRY_DELETE:Ljava/nio/file/WatchEvent$Kind;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 5 1 action I
Signature: (I)Ljava/nio/file/WatchEvent$Kind<*>;
MethodParameters:
Name Flags
action
private void processEvents(sun.nio.fs.WindowsWatchService$WindowsWatchKey, int);
descriptor: (Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.buffer:()Lsun/nio/fs/NativeBuffer;
invokevirtual sun.nio.fs.NativeBuffer.address:()J
lstore 3
start local 3 1: StackMap locals: long
StackMap stack:
getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 3
ldc 4
ladd
invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
istore 6
start local 6 2: aload 0
iload 6
invokevirtual sun.nio.fs.WindowsWatchService$Poller.translateActionToEvent:(I)Ljava/nio/file/WatchEvent$Kind;
astore 7
start local 7 3: aload 1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.events:()Ljava/util/Set;
aload 7
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 14
4: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 3
ldc 8
ladd
invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
istore 8
start local 8 5: iload 8
iconst_2
irem
ifeq 7
6: new java.lang.AssertionError
dup
ldc "FileNameLength is not a multiple of 2"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals: sun.nio.fs.WindowsWatchService$Poller sun.nio.fs.WindowsWatchService$WindowsWatchKey int long top int java.nio.file.WatchEvent$Kind int
StackMap stack:
iload 8
iconst_2
idiv
newarray 5
astore 9
start local 9 8: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
aconst_null
lload 3
ldc 12
ladd
aload 9
9: getstatic jdk.internal.misc.Unsafe.ARRAY_CHAR_BASE_OFFSET:I
i2l
iload 8
i2l
10: invokevirtual jdk.internal.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
11: aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.fs:Lsun/nio/fs/WindowsFileSystem;
new java.lang.String
dup
aload 9
invokespecial java.lang.String.<init>:([C)V
invokestatic sun.nio.fs.WindowsPath.createFromNormalizedPath:(Lsun/nio/fs/WindowsFileSystem;Ljava/lang/String;)Lsun/nio/fs/WindowsPath;
12: astore 10
start local 10 13: aload 1
aload 7
aload 10
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.signalEvent:(Ljava/nio/file/WatchEvent$Kind;Ljava/lang/Object;)V
end local 10 end local 9 end local 8 14: StackMap locals:
StackMap stack:
getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Ljdk/internal/misc/Unsafe;
lload 3
lconst_0
ladd
invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
istore 5
start local 5 15: lload 3
iload 5
i2l
ladd
lstore 3
end local 7 end local 6 16: iload 5
ifne 1
17: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 18 1 key Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
0 18 2 size I
1 18 3 address J
15 18 5 nextOffset I
2 16 6 action I
3 16 7 kind Ljava/nio/file/WatchEvent$Kind<*>;
5 14 8 nameLengthInBytes I
8 14 9 nameAsArray [C
13 14 10 name Lsun/nio/fs/WindowsPath;
MethodParameters:
Name Flags
key
size
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=6, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.port:J
invokestatic sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus:(J)Lsun/nio/fs/WindowsNativeDispatcher$CompletionStatus;
astore 1
start local 1 1: goto 5
end local 1 StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
2: astore 2
start local 2 3: aload 2
invokevirtual sun.nio.fs.WindowsException.printStackTrace:()V
4: return
end local 2 start local 1 5: StackMap locals: sun.nio.fs.WindowsNativeDispatcher$CompletionStatus
StackMap stack:
aload 1
invokevirtual sun.nio.fs.WindowsNativeDispatcher$CompletionStatus.completionKey:()J
lconst_0
lcmp
ifne 9
6: aload 0
invokevirtual sun.nio.fs.WindowsWatchService$Poller.processRequests:()Z
istore 2
start local 2 7: iload 2
ifeq 0
8: return
end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.WindowsWatchService$Poller.ck2key:Ljava/util/Map;
aload 1
invokevirtual sun.nio.fs.WindowsNativeDispatcher$CompletionStatus.completionKey:()J
l2i
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.nio.fs.WindowsWatchService$WindowsWatchKey
astore 2
start local 2 10: aload 2
ifnonnull 12
11: goto 0
12: StackMap locals: sun.nio.fs.WindowsWatchService$WindowsWatchKey
StackMap stack:
iconst_0
istore 3
start local 3 13: aload 1
invokevirtual sun.nio.fs.WindowsNativeDispatcher$CompletionStatus.error:()I
istore 4
start local 4 14: aload 1
invokevirtual sun.nio.fs.WindowsNativeDispatcher$CompletionStatus.bytesTransferred:()I
istore 5
start local 5 15: iload 4
sipush 1022
if_icmpne 18
16: aload 2
getstatic java.nio.file.StandardWatchEventKinds.OVERFLOW:Ljava/nio/file/WatchEvent$Kind;
aconst_null
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.signalEvent:(Ljava/nio/file/WatchEvent$Kind;Ljava/lang/Object;)V
17: goto 38
StackMap locals: int int int
StackMap stack:
18: iload 4
ifeq 21
iload 4
sipush 234
if_icmpeq 21
19: iconst_1
istore 3
20: goto 38
21: StackMap locals:
StackMap stack:
iload 5
ifle 24
22: aload 0
aload 2
iload 5
invokevirtual sun.nio.fs.WindowsWatchService$Poller.processEvents:(Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;I)V
23: goto 26
StackMap locals:
StackMap stack:
24: iload 4
ifne 26
25: aload 2
getstatic java.nio.file.StandardWatchEventKinds.OVERFLOW:Ljava/nio/file/WatchEvent$Kind;
aconst_null
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.signalEvent:(Ljava/nio/file/WatchEvent$Kind;Ljava/lang/Object;)V
26: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.handle:()J
27: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.buffer:()Lsun/nio/fs/NativeBuffer;
invokevirtual sun.nio.fs.NativeBuffer.address:()J
28: sipush 16384
29: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.watchSubtree:()Z
30: sipush 351
31: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.countAddress:()J
32: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.overlappedAddress:()J
33: invokestatic sun.nio.fs.WindowsNativeDispatcher.ReadDirectoryChangesW:(JJIZIJJ)V
34: goto 38
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
35: pop
36: iconst_1
istore 3
37: aload 2
iconst_1
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.setErrorStartingOverlapped:(Z)V
38: StackMap locals:
StackMap stack:
iload 3
ifeq 0
39: aload 0
aload 2
invokevirtual sun.nio.fs.WindowsWatchService$Poller.implCancelKey:(Ljava/nio/file/WatchKey;)V
40: aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.signal:()V
end local 5 end local 4 end local 3 end local 2 end local 1 41: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lsun/nio/fs/WindowsWatchService$Poller;
1 2 1 info Lsun/nio/fs/WindowsNativeDispatcher$CompletionStatus;
5 41 1 info Lsun/nio/fs/WindowsNativeDispatcher$CompletionStatus;
3 5 2 x Lsun/nio/fs/WindowsException;
7 9 2 shutdown Z
10 41 2 key Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
13 41 3 criticalError Z
14 41 4 errorCode I
15 41 5 messageSize I
Exception table:
from to target type
0 1 2 Class sun.nio.fs.WindowsException
26 34 35 Class sun.nio.fs.WindowsException
}
SourceFile: "WindowsWatchService.java"
NestHost: sun.nio.fs.WindowsWatchService
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Kind = java.nio.file.WatchEvent$Kind of java.nio.file.WatchEvent
public abstract Modifier = java.nio.file.WatchEvent$Modifier of java.nio.file.WatchEvent
public final InternalOption = sun.nio.fs.ExtendedOptions$InternalOption of sun.nio.fs.ExtendedOptions
CompletionStatus = sun.nio.fs.WindowsNativeDispatcher$CompletionStatus of sun.nio.fs.WindowsNativeDispatcher
private FileKey = sun.nio.fs.WindowsWatchService$FileKey of sun.nio.fs.WindowsWatchService
private Poller = sun.nio.fs.WindowsWatchService$Poller of sun.nio.fs.WindowsWatchService
private WindowsWatchKey = sun.nio.fs.WindowsWatchService$WindowsWatchKey of sun.nio.fs.WindowsWatchService