From fb6c4a9919597d33016445aaecb9b11cbc7d6f0b Mon Sep 17 00:00:00 2001 From: Dmitry Kryukov Date: Wed, 17 Dec 2025 23:05:29 +0300 Subject: [PATCH] [bugfix] Issue 665 Fixed resource leak related to sshClient Signed-off-by: Dmitry Kryukov --- .../main/java/com/datasophon/api/utils/MinaUtils.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/datasophon-service/src/main/java/com/datasophon/api/utils/MinaUtils.java b/datasophon-service/src/main/java/com/datasophon/api/utils/MinaUtils.java index ce5491a4..f820bf47 100644 --- a/datasophon-service/src/main/java/com/datasophon/api/utils/MinaUtils.java +++ b/datasophon-service/src/main/java/com/datasophon/api/utils/MinaUtils.java @@ -51,11 +51,11 @@ public class MinaUtils { /** 打开远程会话 */ public static ClientSession openConnection(String sshHost, Integer sshPort, String sshUser) { - SshClient sshClient = SshClient.setUpDefaultClient(); - sshClient.start(); ClientSession session = null; - String privateKeyPath = System.getProperty("user.home") + Constants.ID_RSA; - try { + try (SshClient sshClient = SshClient.setUpDefaultClient()) { + sshClient.start(); + String privateKeyPath = System.getProperty("user.home") + Constants.ID_RSA; + String privateKeyContent = new String(Files.readAllBytes(Paths.get(privateKeyPath))); session = sshClient.connect(sshUser, sshHost, sshPort).verify().getClientSession(); session.addPublicKeyIdentity(getKeyPairFromString(privateKeyContent)); @@ -63,6 +63,7 @@ public static ClientSession openConnection(String sshHost, Integer sshPort, Stri LOG.info("验证失败"); return null; } + } catch (IOException e) { throw new RuntimeException(e); }