diff --git a/core/src/main/java/jenkins/slaves/restarter/UnixSlaveRestarter.java b/core/src/main/java/jenkins/slaves/restarter/UnixSlaveRestarter.java index 9167e0f5a2..b443dcc6a1 100644 --- a/core/src/main/java/jenkins/slaves/restarter/UnixSlaveRestarter.java +++ b/core/src/main/java/jenkins/slaves/restarter/UnixSlaveRestarter.java @@ -67,7 +67,7 @@ public class UnixSlaveRestarter extends SlaveRestarter { * Gets the current executable name. */ private static String getCurrentExecutable() { - int pid = LIBC.getpid(); + long pid = ProcessHandle.current().pid(); String name = "/proc/" + pid + "/exe"; File exe = new File(name); if (exe.exists()) { diff --git a/test/src/test/java/hudson/slaves/PingThreadTest.java b/test/src/test/java/hudson/slaves/PingThreadTest.java index 4c329e2c29..c01417e0d6 100644 --- a/test/src/test/java/hudson/slaves/PingThreadTest.java +++ b/test/src/test/java/hudson/slaves/PingThreadTest.java @@ -36,7 +36,6 @@ import hudson.remoting.Channel; import hudson.remoting.ChannelClosedException; import hudson.remoting.PingThread; import java.io.IOException; -import java.lang.management.ManagementFactory; import java.lang.reflect.Method; import java.util.concurrent.TimeoutException; import jenkins.security.MasterToSlaveCallable; @@ -59,7 +58,7 @@ public class PingThreadTest { DumbSlave slave = j.createOnlineSlave(); Computer computer = slave.toComputer(); Channel channel = (Channel) slave.getChannel(); - String pid = channel.call(new GetPid()); + long pid = channel.call(new GetPid()); PingThread pingThread = null; for (Thread it : Thread.getAllStackTraces().keySet()) { @@ -70,7 +69,7 @@ public class PingThreadTest { assertNotNull(pingThread); // Simulate lost connection - assertEquals(0, new ProcessBuilder("kill", "-TSTP", pid).start().waitFor()); + assertEquals(0, new ProcessBuilder("kill", "-TSTP", Long.toString(pid)).start().waitFor()); try { // ... do not wait for Ping Thread to notice Method onDead = PingThread.class.getDeclaredMethod("onDead", Throwable.class); @@ -82,13 +81,13 @@ public class PingThreadTest { assertNull(slave.getComputer().getChannel()); assertNull(computer.getChannel()); } finally { - assertEquals(0, new ProcessBuilder("kill", "-CONT", pid).start().waitFor()); + assertEquals(0, new ProcessBuilder("kill", "-CONT", Long.toString(pid)).start().waitFor()); } } - private static final class GetPid extends MasterToSlaveCallable { - @Override public String call() { - return ManagementFactory.getRuntimeMXBean().getName().replaceAll("@.*", ""); + private static final class GetPid extends MasterToSlaveCallable { + @Override public Long call() { + return ProcessHandle.current().pid(); } } }