bug: https://bugs.openjdk.java.net/browse/JDK-8048215
webrev: http://cr.openjdk.java.net/~dholmes/8048215/webrev/

Simple race condition in the test. The main thread does checks that are only valid once the target thread has called o.wait() but there's nothing to ensure that point of execution is reached. The failure is easily reprodcued by just putting in a sleep after:

Object o = new Object();

Fix is to add a shared 'waiter' Object that the target waits upon and for which the main also synchronizes on such that the main thread can't proceed until wait() has been called and released the monitor.

Thanks,
David

Reply via email to