From 22ced78f0ab2b43be0cfabf92b5eeb8bb83b53a5 Mon Sep 17 00:00:00 2001 From: Jaroslav Bachorik Date: Thu, 25 Sep 2014 12:51:43 +0200 Subject: [PATCH] 8059034: ProcessTools.startProcess() might leak processes Reviewed-by: sla, miauno --- jdk/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jdk/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java b/jdk/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java index 1610fec9f08..8935d967f5d 100644 --- a/jdk/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java +++ b/jdk/test/lib/testlibrary/jdk/testlibrary/ProcessTools.java @@ -36,12 +36,10 @@ import java.util.concurrent.CountDownLatch; import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; -import java.util.concurrent.Phaser; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.function.Predicate; import java.util.function.Consumer; -import java.util.stream.Collector; import java.util.stream.Collectors; import sun.management.VMManagement; @@ -177,6 +175,11 @@ public final class ProcessTools { for(Map.Entry s : Thread.getAllStackTraces().entrySet()) { printStack(s.getKey(), s.getValue()); } + + if (p.isAlive()) { + p.destroyForcibly(); + } + stdoutTask.cancel(true); stderrTask.cancel(true); throw e;