From 95917370d9d6fa1dab559ec35a663c4f3731b72a Mon Sep 17 00:00:00 2001 From: Peter Liljenberg Date: Mon, 31 Mar 2014 15:46:23 +0200 Subject: [PATCH] Ugly hack to fix destroyProcess for Java8 --- core/src/main/java/hudson/util/ProcessTree.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/hudson/util/ProcessTree.java b/core/src/main/java/hudson/util/ProcessTree.java index c8b6e3bb12..3c7d795fc6 100644 --- a/core/src/main/java/hudson/util/ProcessTree.java +++ b/core/src/main/java/hudson/util/ProcessTree.java @@ -549,11 +549,7 @@ public abstract class ProcessTree implements Iterable, IProcessTree, try { int pid = getPid(); LOGGER.fine("Killing pid="+pid); - if (UnixReflection.isJava8()) { - UnixReflection.DESTROY_PROCESS.invoke(null, pid, false); - } else { - UnixReflection.DESTROY_PROCESS.invoke(null, pid); - } + UnixReflection.destroy(pid); } catch (IllegalAccessException e) { // this is impossible IllegalAccessError x = new IllegalAccessError(); @@ -628,7 +624,16 @@ public abstract class ProcessTree implements Iterable, IProcessTree, throw x; } } - public static boolean isJava8() { + + public static void destroy(int pid) throws IllegalAccessException, InvocationTargetException { + if (isJava8()) { + DESTROY_PROCESS.invoke(null, pid, false); + } else { + DESTROY_PROCESS.invoke(null, pid); + } + } + + private static boolean isJava8() { return (System.getProperty("java.version").startsWith("1.8")); } -- GitLab