From bcc4315ea9d0cd0386f360340ce3a31207ea65f1 Mon Sep 17 00:00:00 2001 From: yukaidi Date: Fri, 29 May 2026 02:08:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(parser):=20JsScriptLoader=20JarFile=20?= =?UTF-8?q?=E6=94=B9=E7=94=A8=20try-with-resources=20=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=8F=A5=E6=9F=84=E6=B3=84=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit JarFile 在手动 close() 时若中间抛异常会导致文件句柄未关闭, 改为 try-with-resources 确保无论正常或异常都能释放资源。 --- .../qaiu/parser/customjs/JsScriptLoader.java | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/parser/src/main/java/cn/qaiu/parser/customjs/JsScriptLoader.java b/parser/src/main/java/cn/qaiu/parser/customjs/JsScriptLoader.java index d66b106..a3d665f 100644 --- a/parser/src/main/java/cn/qaiu/parser/customjs/JsScriptLoader.java +++ b/parser/src/main/java/cn/qaiu/parser/customjs/JsScriptLoader.java @@ -139,21 +139,20 @@ public class JsScriptLoader { try { String jarPath = jarUrl.getPath().substring(5, jarUrl.getPath().indexOf("!")); - JarFile jarFile = new JarFile(jarPath); - - Enumeration entries = jarFile.entries(); - while (entries.hasMoreElements()) { - JarEntry entry = entries.nextElement(); - String entryName = entry.getName(); - - if (entryName.startsWith(RESOURCE_PATH + "/") && - entryName.endsWith(".js") && - !isExcludedFile(entryName.substring(entryName.lastIndexOf('/') + 1))) { - resourceFiles.add(entryName); + + try (JarFile jarFile = new JarFile(jarPath)) { + Enumeration entries = jarFile.entries(); + while (entries.hasMoreElements()) { + JarEntry entry = entries.nextElement(); + String entryName = entry.getName(); + + if (entryName.startsWith(RESOURCE_PATH + "/") && + entryName.endsWith(".js") && + !isExcludedFile(entryName.substring(entryName.lastIndexOf('/') + 1))) { + resourceFiles.add(entryName); + } } } - - jarFile.close(); } catch (Exception e) { log.debug("解析JAR包资源文件失败", e); }