Need reviewer for 6931216: TEST_BUG: test/java/nio/file/WatchService/LotsOfEvents.java failed with NPE
Alan Bateman
Alan.Bateman at Sun.COM
Tue Mar 2 05:06:17 PST 2010
One of the WatchService tests failed with a NullPointerException in one
of Kelly's test runs. It's a test issue and the fix is trivial. The
reason for the NPE is that the test incorrectly assumes that the first
batch of events will be read retrieved within 15s. The fix is to
restructure the loops so that it checks the key at the beginning rather
than the end.
Thanks,
-Alan.
diff -r 893034df4ec2 test/java/nio/file/WatchService/LotsOfEvents.java
--- a/test/java/nio/file/WatchService/LotsOfEvents.java Mon Mar 01
18:00:47 2010 +0000
+++ b/test/java/nio/file/WatchService/LotsOfEvents.java Tue Mar 02
12:58:07 2010 +0000
@@ -102,7 +102,7 @@ public class LotsOfEvents {
int nread = 0;
boolean gotOverflow = false;
- do {
+ while (key != null) {
List<WatchEvent<?>> events = key.pollEvents();
for (WatchEvent<?> event: events) {
WatchEvent.Kind<?> kind = event.kind();
@@ -122,7 +122,7 @@ public class LotsOfEvents {
if (!key.reset())
throw new RuntimeException("Key is no longer valid");
key = watcher.poll(2, TimeUnit.SECONDS);
- } while (key != null);
+ }
// check that all expected events were received or there was an
overflow
if (nread < count && !gotOverflow)
@@ -168,7 +168,7 @@ public class LotsOfEvents {
// process events and ensure that we don't get repeated
modify
// events for the same file.
WatchKey key = watcher.poll(15, TimeUnit.SECONDS);
- do {
+ while (key != null) {
Set<Path> modified = new HashSet<Path>();
for (WatchEvent<?> event: key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
@@ -186,7 +186,7 @@ public class LotsOfEvents {
if (!key.reset())
throw new RuntimeException("Key is no longer
valid");
key = watcher.poll(2, TimeUnit.SECONDS);
- } while (key != null);
+ }
}
} finally {
More information about the nio-dev
mailing list