Index: modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ThreadTest.java =================================================================== --- modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ThreadTest.java (revision 467546) +++ modules/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/ThreadTest.java (working copy) @@ -343,25 +343,38 @@ Thread secondOne = new Thread(mytg, st2, "secondOne1"); assertTrue("Incorrect value returned1", Thread.enumerate(tarray) == initialCount); + int waitTime = 3000; synchronized (st1) { firstOne.start(); + while (!firstOne.isAlive() && waitTime > 0) { + waitTime -=10; + } + if (waitTime == 0) { + fail("thread 'firstOne' has not started"); + } try { st1.wait(); } catch (InterruptedException e) { } } - assertTrue("Incorrect value returned2", - Thread.enumerate(tarray) == (initialCount + 1)); - + assertEquals("Incorrect value returned2", + (initialCount + 1), Thread.enumerate(tarray)); + waitTime = 3000; synchronized (st2) { secondOne.start(); + while (!secondOne.isAlive() && waitTime > 0) { + waitTime -=10; + } + if (waitTime == 0) { + fail("thread 'secondOne' has not started"); + } try { st2.wait(); } catch (InterruptedException e) { } } - assertTrue("Incorrect value returned3", - Thread.enumerate(tarray) == (initialCount + 2)); + assertEquals("Incorrect value returned3", + (initialCount + 2), Thread.enumerate(tarray)); synchronized (st1) { firstOne.interrupt();