From 5884c537a647415896f98648f78c65ec53cb67c7 Mon Sep 17 00:00:00 2001 From: mchung Date: Tue, 26 May 2009 18:07:14 -0700 Subject: [PATCH] 6512493: TEST_BUG: unexpected LockInfo failure in LockedSynchronizers.java Summary: Retry a few times to check thread status before reporting failure Reviewed-by: swamyv --- .../ThreadMXBean/LockingThread.java | 2 ++ .../ThreadMXBean/MonitorDeadlock.java | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/test/java/lang/management/ThreadMXBean/LockingThread.java b/test/java/lang/management/ThreadMXBean/LockingThread.java index 11fa9d902..801d35704 100644 --- a/test/java/lang/management/ThreadMXBean/LockingThread.java +++ b/test/java/lang/management/ThreadMXBean/LockingThread.java @@ -66,6 +66,8 @@ public class LockingThread extends Thread { throw new RuntimeException(e); } } + Utils.waitForBlockWaitingState(t1); + Utils.waitForBlockWaitingState(t2); } static long[] getThreadIds() { return new long[] {t1.getId(), t2.getId()}; diff --git a/test/java/lang/management/ThreadMXBean/MonitorDeadlock.java b/test/java/lang/management/ThreadMXBean/MonitorDeadlock.java index ad5b822b5..da3b11902 100644 --- a/test/java/lang/management/ThreadMXBean/MonitorDeadlock.java +++ b/test/java/lang/management/ThreadMXBean/MonitorDeadlock.java @@ -83,11 +83,24 @@ public class MonitorDeadlock { 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; + } } } -- GitLab