--- a/jdk/src/java.base/unix/classes/java/lang/ProcessImpl.java Mon Mar 23 09:45:32 2015 -0700
+++ b/jdk/src/java.base/unix/classes/java/lang/ProcessImpl.java Mon Mar 23 10:13:32 2015 -0400
@@ -496,12 +496,11 @@
public synchronized boolean waitFor(long timeout, TimeUnit unit)
throws InterruptedException
{
+ long remainingNanos = unit.toNanos(timeout); // throw NPE before other conditions
if (hasExited) return true;
if (timeout <= 0) return false;
- long remainingNanos = unit.toNanos(timeout);
long deadline = System.nanoTime() + remainingNanos;
-
do {
// Round up to next millisecond
wait(TimeUnit.NANOSECONDS.toMillis(remainingNanos + 999_999L));