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 sun.misc.Unsafe UNSAFE;
descriptor: Lsun/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 sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Lsun/misc/Unsafe;
1: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Lsun/misc/Unsafe;
invokevirtual sun.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 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:
3: aload 9
iload 7
aaload
astore 6
start local 6 4: aload 6
getstatic com.sun.nio.file.ExtendedWatchEventModifier.FILE_TREE:Lcom/sun/nio/file/ExtendedWatchEventModifier;
if_acmpne 7
5: iconst_1
istore 5
6: goto 12
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:
aload 6
instanceof com.sun.nio.file.SensitivityWatchEventModifier
ifeq 11
10: goto 12
11: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
ldc "Modifier not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
areturn
end local 6 12: 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:
13: iload 7
iload 8
if_icmplt 3
14: aload 4
invokevirtual sun.nio.fs.WindowsPath.getPathForWin32Calls:()Ljava/lang/String;
15: iconst_1
16: bipush 7
17: iconst_3
18: ldc 1107296256
19: invokestatic sun.nio.fs.WindowsNativeDispatcher.CreateFile:(Ljava/lang/String;IIII)J
lstore 6
start local 6 20: goto 23
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
21: astore 8
start local 8 22: aload 8
aload 4
invokevirtual sun.nio.fs.WindowsException.asIOException:(Lsun/nio/fs/WindowsPath;)Ljava/io/IOException;
areturn
end local 8 start local 6 23: StackMap locals: long
StackMap stack:
iconst_0
istore 8
start local 8 24: lload 6
invokestatic sun.nio.fs.WindowsFileAttributes.readAttributes:(J)Lsun/nio/fs/WindowsFileAttributes;
astore 9
start local 9 25: goto 30
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
26: astore 10
start local 10 27: aload 10
aload 4
invokevirtual sun.nio.fs.WindowsException.asIOException:(Lsun/nio/fs/WindowsPath;)Ljava/io/IOException;
astore 23
28: iload 8
ifne 29
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
29: 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 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 sun.nio.fs.WindowsFileAttributes
StackMap stack:
aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.isDirectory:()Z
ifne 34
31: 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
32: iload 8
ifne 33
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
33: 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
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
StackMap stack:
new sun.nio.fs.WindowsWatchService$FileKey
dup
aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.volSerialNumber:()I
35: aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.fileIndexHigh:()I
36: aload 9
invokevirtual sun.nio.fs.WindowsFileAttributes.fileIndexLow:()I
37: invokespecial sun.nio.fs.WindowsWatchService$FileKey.<init>:(III)V
astore 10
start local 10 38: 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 39: aload 11
ifnull 44
iload 5
aload 11
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.watchSubtree:()Z
if_icmpne 44
40: aload 11
aload 2
invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.setEvents:(Ljava/util/Set;)V
41: aload 11
astore 23
42: iload 8
ifne 43
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
43: 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
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
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 45: iload 12
ifne 47
46: 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
47: 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
48: goto 53
StackMap locals:
StackMap stack: sun.nio.fs.WindowsException
49: astore 13
start local 13 50: 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
51: iload 8
ifne 52
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
52: 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 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
StackMap stack:
sipush 16420
istore 13
start local 13 54: iload 13
invokestatic sun.nio.fs.NativeBuffers.getNativeBuffer:(I)Lsun/nio/fs/NativeBuffer;
astore 14
start local 14 55: aload 14
invokevirtual sun.nio.fs.NativeBuffer.address:()J
lstore 15
start local 15 56: lload 15
iload 13
i2l
ladd
ldc 32
lsub
lstore 17
start local 17 57: lload 17
ldc 4
lsub
lstore 19
start local 19 58: getstatic sun.nio.fs.WindowsWatchService$Poller.UNSAFE:Lsun/misc/Unsafe;
lload 17
ldc 32
iconst_0
invokevirtual sun.misc.Unsafe.setMemory:(JJB)V
59: aload 0
lload 17
invokevirtual sun.nio.fs.WindowsWatchService$Poller.createAndAttachEvent:(J)V
60: lload 6
61: lload 15
62: sipush 16384
63: iload 5
64: sipush 351
65: lload 19
66: lload 17
67: invokestatic sun.nio.fs.WindowsNativeDispatcher.ReadDirectoryChangesW:(JJIZIJJ)V
68: goto 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
StackMap stack: sun.nio.fs.WindowsException
69: astore 21
start local 21 70: aload 0
lload 17
invokevirtual sun.nio.fs.WindowsWatchService$Poller.closeAttachedEvent:(J)V
71: aload 14
invokevirtual sun.nio.fs.NativeBuffer.release:()V
72: 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
73: iload 8
ifne 74
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
74: 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 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
StackMap stack:
aload 11
ifnonnull 83
76: 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
77: lload 6
aload 2
iload 5
aload 14
lload 19
78: lload 17
iload 12
79: invokevirtual sun.nio.fs.WindowsWatchService$WindowsWatchKey.init:(JLjava/util/Set;ZLsun/nio/fs/NativeBuffer;JJI)Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
80: astore 21
start local 21 81: 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
82: goto 88
end local 21 83: 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
84: aload 0
aload 11
invokevirtual sun.nio.fs.WindowsWatchService$Poller.releaseResources:(Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;)V
85: aload 11
lload 6
aload 2
iload 5
aload 14
86: lload 19
lload 17
iload 12
87: 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 88: 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
89: iconst_1
istore 8
90: aload 21
astore 23
91: iload 8
ifne 92
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
92: 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 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
StackMap stack: java.lang.Throwable
astore 22
94: iload 8
ifne 95
lload 6
invokestatic sun.nio.fs.WindowsNativeDispatcher.CloseHandle:(J)V
95: 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 96 0 this Lsun/nio/fs/WindowsWatchService$Poller;
0 96 1 obj Ljava/nio/file/Path;
0 96 2 events Ljava/util/Set<+Ljava/nio/file/WatchEvent$Kind<*>;>;
0 96 3 modifiers [Ljava/nio/file/WatchEvent$Modifier;
1 96 4 dir Lsun/nio/fs/WindowsPath;
2 96 5 watchSubtree Z
4 12 6 modifier Ljava/nio/file/WatchEvent$Modifier;
20 21 6 handle J
23 96 6 handle J
22 23 8 x Lsun/nio/fs/WindowsException;
24 96 8 registered Z
25 26 9 attrs Lsun/nio/fs/WindowsFileAttributes;
30 93 9 attrs Lsun/nio/fs/WindowsFileAttributes;
27 30 10 x Lsun/nio/fs/WindowsException;
38 93 10 fk Lsun/nio/fs/WindowsWatchService$FileKey;
39 93 11 existing Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
45 93 12 completionKey I
50 53 13 x Lsun/nio/fs/WindowsException;
54 93 13 size I
55 93 14 buffer Lsun/nio/fs/NativeBuffer;
56 93 15 bufferAddress J
57 93 17 overlappedAddress J
58 93 19 countAddress J
70 75 21 x Lsun/nio/fs/WindowsException;
81 83 21 watchKey Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
88 93 21 watchKey Lsun/nio/fs/WindowsWatchService$WindowsWatchKey;
Exception table:
from to target type
14 20 21 Class sun.nio.fs.WindowsException
24 25 26 Class sun.nio.fs.WindowsException
47 48 49 Class sun.nio.fs.WindowsException
59 68 69 Class sun.nio.fs.WindowsException
24 28 93 any
30 32 93 any
34 42 93 any
44 51 93 any
53 73 93 any
75 91 93 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.cleaner:()Lsun/misc/Cleaner;
invokevirtual sun.misc.Cleaner.clean:()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:Lsun/misc/Unsafe;
lload 1
getstatic sun.nio.fs.WindowsWatchService$Poller.OFFSETOF_HEVENT:S
i2l
ladd
lload 3
invokevirtual sun.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:Lsun/misc/Unsafe;
lload 1
getstatic sun.nio.fs.WindowsWatchService$Poller.OFFSETOF_HEVENT:S
i2l
ladd
invokevirtual sun.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:Lsun/misc/Unsafe;
lload 3
ldc 4
ladd
invokevirtual sun.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:Lsun/misc/Unsafe;
lload 3
ldc 8
ladd
invokevirtual sun.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:Lsun/misc/Unsafe;
aconst_null
lload 3
ldc 12
ladd
aload 9
9: getstatic sun.misc.Unsafe.ARRAY_CHAR_BASE_OFFSET:I
i2l
iload 8
i2l
10: invokevirtual sun.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:Lsun/misc/Unsafe;
lload 3
lconst_0
ladd
invokevirtual sun.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
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