test/java/lang/ProcessBuilder/Basic.java
Print this page
*** 2238,2264 ****
List<String> childArgs = new ArrayList<String>(javaChildArgs);
childArgs.add("sleep");
final Process p = new ProcessBuilder(childArgs).start();
final long start = System.nanoTime();
final CountDownLatch latch = new CountDownLatch(1);
final Thread thread = new Thread() {
public void run() {
try {
try {
latch.countDown();
! p.waitFor(30000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
return;
}
! fail("waitFor() wasn't interrupted");
! } catch (Throwable t) { unexpected(t); }}};
thread.start();
latch.await();
Thread.sleep(1000);
thread.interrupt();
p.destroy();
} catch (Throwable t) { unexpected(t); }
//----------------------------------------------------------------
// Check the default implementation for
--- 2238,2273 ----
List<String> childArgs = new ArrayList<String>(javaChildArgs);
childArgs.add("sleep");
final Process p = new ProcessBuilder(childArgs).start();
final long start = System.nanoTime();
final CountDownLatch latch = new CountDownLatch(1);
+ final CountDownLatch done = new CountDownLatch(1);
final Thread thread = new Thread() {
public void run() {
try {
+ final boolean result;
try {
latch.countDown();
! result = p.waitFor(30000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
return;
}
! fail("waitFor() wasn't interrupted, its return value was: " + result);
! } catch (Throwable t) {
! unexpected(t);
! } finally {
! done.countDown();
! }
! }
! };
thread.start();
latch.await();
Thread.sleep(1000);
thread.interrupt();
+ done.await();
p.destroy();
} catch (Throwable t) { unexpected(t); }
//----------------------------------------------------------------
// Check the default implementation for