test/java/rmi/testlibrary/JavaVM.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -24,10 +24,11 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Arrays;
 import java.util.StringTokenizer;
+import java.util.concurrent.TimeUnit;
 
 /**
  * RMI regression test utility class that uses Runtime.exec to spawn a
  * java process that will run a named java class.
  */

@@ -171,10 +172,29 @@
         errPipe.join();
         return status;
     }
 
     /**
+     * Causes the current thread to wait the subprocess to exit, if necessary,
+     * until the subprocess represented by this Process object has terminated,
+     * or the specified waiting time elapses.
+     * @param timeout the maximum time to wait
+     * @param unit the time unit of the timeout argument
+     * @return true if the JavaVM has exited and false if the waiting time
+     *         elapsed before the subprocess has exited.
+     * @throws InterruptedException if the current thread is interrupted
+     *         while waiting.
+     */
+    public boolean waitFor(long timeout, TimeUnit unit)
+            throws InterruptedException {
+        if (vm == null)
+            throw new IllegalStateException("can't wait for JavaVM that isn't running");
+
+        return vm.waitFor(timeout, unit);
+    }
+
+    /**
      * Starts the subprocess, waits for it to exit, and returns its exit status.
      */
     public int execute() throws IOException, InterruptedException {
         start();
         return waitFor();