--- old/test/lib/jdk/test/lib/Platform.java 2017-05-26 16:36:20.966921069 -0700 +++ new/test/lib/jdk/test/lib/Platform.java 2017-05-26 16:36:20.866921074 -0700 @@ -23,6 +23,10 @@ package jdk.test.lib; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.regex.Pattern; public class Platform { @@ -228,7 +232,7 @@ public static boolean canPtraceAttachLinux() throws Exception { // SELinux deny_ptrace: - String deny_ptrace = Utils.fileAsString("/sys/fs/selinux/booleans/deny_ptrace"); + String deny_ptrace = fileAsString("/sys/fs/selinux/booleans/deny_ptrace"); if (deny_ptrace != null && deny_ptrace.contains("1")) { // ptrace will be denied: return false; @@ -239,7 +243,7 @@ // 1 - restricted ptrace: a process must be a children of the inferior or user is root // 2 - only processes with CAP_SYS_PTRACE may use ptrace or user is root // 3 - no attach: no processes may use ptrace with PTRACE_ATTACH - String ptrace_scope = Utils.fileAsString("/proc/sys/kernel/yama/ptrace_scope"); + String ptrace_scope = fileAsString("/proc/sys/kernel/yama/ptrace_scope"); if (ptrace_scope != null) { if (ptrace_scope.startsWith("3")) { return false; @@ -265,4 +269,10 @@ .matcher(osArch) .matches(); } + + private static String fileAsString(String filename) throws IOException { + Path filePath = Paths.get(filename); + if (!Files.exists(filePath)) return null; + return new String(Files.readAllBytes(filePath)); + } }