diff -r 4dff16390b67 -r 5c22272c888a jdk/test/java/lang/ProcessBuilder/Basic.java --- a/jdk/test/java/lang/ProcessBuilder/Basic.java Thu Dec 05 07:45:27 2013 -0800 +++ b/jdk/test/java/lang/ProcessBuilder/Basic.java Thu Dec 05 16:19:06 2013 +0000 @@ -2239,24 +2239,33 @@ childArgs.add("sleep"); final Process p = new ProcessBuilder(childArgs).start(); final long start = System.nanoTime(); - final CountDownLatch latch = new CountDownLatch(1); + final CountDownLatch ready = new CountDownLatch(1); + final CountDownLatch done = new CountDownLatch(1); final Thread thread = new Thread() { public void run() { try { + final boolean result; try { - latch.countDown(); - p.waitFor(30000, TimeUnit.MILLISECONDS); + ready.countDown(); + result = p.waitFor(30000, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { return; } - fail("waitFor() wasn't interrupted"); - } catch (Throwable t) { unexpected(t); }}}; + fail("waitFor() wasn't interrupted, its return value was: " + result); + } catch (Throwable t) { + unexpected(t); + } finally { + done.countDown(); + } + } + }; thread.start(); - latch.await(); + ready.await(); Thread.sleep(1000); thread.interrupt(); + done.await(); p.destroy(); } catch (Throwable t) { unexpected(t); }