test/java/nio/file/WatchService/SensitivityModifier.java
Print this page
@@ -49,10 +49,11 @@
Path dir = dirs[i];
dir.register(watcher, new WatchEvent.Kind<?>[]{ ENTRY_MODIFY }, sensivity);
}
}
+ @SuppressWarnings("unchecked")
static void doTest(Path top) throws Exception {
FileSystem fs = top.getFileSystem();
WatchService watcher = fs.newWatchService();
// create directories and files
@@ -59,15 +60,15 @@
int nDirs = 5 + rand.nextInt(20);
int nFiles = 50 + rand.nextInt(50);
Path[] dirs = new Path[nDirs];
Path[] files = new Path[nFiles];
for (int i=0; i<nDirs; i++) {
- dirs[i] = top.resolve("dir" + i).createDirectory();
+ dirs[i] = Files.createDirectory(top.resolve("dir" + i));
}
for (int i=0; i<nFiles; i++) {
Path dir = dirs[rand.nextInt(nDirs)];
- files[i] = dir.resolve("file" + i).createFile();
+ files[i] = Files.createFile(dir.resolve("file" + i));
}
// register the directories (random sensitivity)
register(dirs, watcher);
@@ -78,23 +79,20 @@
// modify files and check that events are received
for (int i=0; i<10; i++) {
Path file = files[rand.nextInt(nFiles)];
System.out.println("Modify: " + file);
- OutputStream out = file.newOutputStream();
- try {
+ try (OutputStream out = Files.newOutputStream(file)) {
out.write(new byte[100]);
- } finally {
- out.close();
}
System.out.println("Waiting for event...");
WatchKey key = watcher.take();
WatchEvent<?> event = key.pollEvents().iterator().next();
if (event.kind() != ENTRY_MODIFY)
throw new RuntimeException("Unexpected event: " + event);
Path name = ((WatchEvent<Path>)event).context();
- if (!name.equals(file.getName()))
+ if (!name.equals(file.getFileName()))
throw new RuntimeException("Unexpected context: " + name);
System.out.println("Event OK");
// drain events (to avoid interference)
do {