From 44d62c8e21fb09381f9f86a081f70549cc321b1e Mon Sep 17 00:00:00 2001 From: Larry Cable Date: Tue, 3 Jun 2025 17:13:22 +0000 Subject: [PATCH] 8358077: sun.tools.attach.VirtualMachineImpl::checkCatchesAndSendQuitTo on Linux leaks file handles after JDK-8327114 Reviewed-by: kevinw, sspitsyn, syan --- .../classes/sun/tools/attach/VirtualMachineImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java b/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java index 820af57ec37..af8870ecf64 100644 --- a/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java +++ b/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java @@ -35,6 +35,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Optional; + import java.util.regex.Pattern; import static java.nio.charset.StandardCharsets.UTF_8; @@ -358,7 +360,11 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine { if (okToSendQuit) { sendQuitTo(pid); } else if (throwIfNotReady) { - final var cmdline = Files.lines(procPid.resolve("cmdline")).findFirst(); + Optional cmdline = Optional.empty(); + + try (final var clf = Files.lines(procPid.resolve("cmdline"))) { + cmdline = clf.findFirst(); + } var cmd = "null"; // default