# HG changeset patch # User mchung # Date 1243386572 25200 # Node ID 7b3a71a2fc3cda0e361d8c04e68e5d9b9f67ad42 # Parent 08ea3ecb912c03cdc7591976caa7e20f62567f1e 6535104: TEST_BUG: FindDeadlocks.java fails intermittently. Summary: Retry a few times to check thread status before reporting failure Reviewed-by: swamyv diff -r 08ea3ecb912c -r 7b3a71a2fc3c jdk/test/java/lang/management/ThreadMXBean/SynchronizerDeadlock.java --- a/jdk/test/java/lang/management/ThreadMXBean/SynchronizerDeadlock.java Tue May 26 18:07:14 2009 -0700 +++ b/jdk/test/java/lang/management/ThreadMXBean/SynchronizerDeadlock.java Tue May 26 18:09:32 2009 -0700 @@ -83,11 +83,24 @@ void waitUntilDeadlock() { barr.await(); - // sleep a little while to wait until threads are blocked. - try { - Thread.sleep(100); - } catch (InterruptedException e) { - // ignore + + for (int i=0; i < 100; i++) { + // sleep a little while to wait until threads are blocked. + try { + Thread.sleep(100); + } catch (InterruptedException e) { + // ignore + } + boolean retry = false; + for (Thread t: dThreads) { + if (t.getState() == Thread.State.RUNNABLE) { + retry = true; + break; + } + } + if (!retry) { + break; + } } } diff -r 08ea3ecb912c -r 7b3a71a2fc3c jdk/test/java/lang/management/ThreadMXBean/SynchronizerLockingThread.java --- a/jdk/test/java/lang/management/ThreadMXBean/SynchronizerLockingThread.java Tue May 26 18:07:14 2009 -0700 +++ b/jdk/test/java/lang/management/ThreadMXBean/SynchronizerLockingThread.java Tue May 26 18:09:32 2009 -0700 @@ -28,7 +28,7 @@ * monitors. * @author Mandy Chung * - * @build ThreadDump + * @build ThreadDump Utils */ import java.lang.management.*; @@ -63,6 +63,9 @@ throw new RuntimeException(e); } } + + Utils.waitForBlockWaitingState(t1); + Utils.waitForBlockWaitingState(t2); } static long[] getThreadIds() {