修复ClassUtil#scanJar未正确关闭文件问题

This commit is contained in:
Looly 2023-10-30 17:26:35 +08:00
parent b2b6a233dd
commit 0101ab5668
2 changed files with 16 additions and 10 deletions

View File

@ -2,7 +2,7 @@
# 🚀Changelog # 🚀Changelog
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.8.23(2023-10-27) # 5.8.23(2023-10-30)
### 🐣新特性 ### 🐣新特性
* 【json 】 改进TemporalAccessorSerializer支持dayOfMonth和month枚举名issue#I82AM8@Gitee * 【json 】 改进TemporalAccessorSerializer支持dayOfMonth和month枚举名issue#I82AM8@Gitee
@ -22,7 +22,8 @@
* 【core 】 修复DataSize.parse(size)不支持空格问题issue#I88Z4Z@Gitee * 【core 】 修复DataSize.parse(size)不支持空格问题issue#I88Z4Z@Gitee
* 【http 】 修复SimpleServer在添加的HttpFilter中有获取请求参数时报错问题issue#3343@Github * 【http 】 修复SimpleServer在添加的HttpFilter中有获取请求参数时报错问题issue#3343@Github
* 【http 】 修复options请求无响应体问题 * 【http 】 修复options请求无响应体问题
* 【core 】 ImgUtil的sliceByRowsAndCols背景无法透明问题issue#3347@Gitee * 【core 】 ImgUtil的sliceByRowsAndCols背景无法透明问题issue#3347@Github
* 【core 】 修复ClassUtil#scanJar未正确关闭文件问题issue#3361@Github
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.8.22(2023-09-13) # 5.8.22(2023-09-13)

View File

@ -5,6 +5,7 @@ import cn.hutool.core.collection.EnumerationIter;
import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.util.*; import cn.hutool.core.util.*;
@ -356,11 +357,12 @@ public class ClassScanner implements Serializable {
} }
/** /**
* 扫描jar包 * 扫描jar包扫描结束后关闭jar文件
* *
* @param jar jar包 * @param jar jar包
*/ */
private void scanJar(JarFile jar) { private void scanJar(JarFile jar) {
try{
String name; String name;
for (JarEntry entry : new EnumerationIter<>(jar.entries())) { for (JarEntry entry : new EnumerationIter<>(jar.entries())) {
name = StrUtil.removePrefix(entry.getName(), StrUtil.SLASH); name = StrUtil.removePrefix(entry.getName(), StrUtil.SLASH);
@ -373,6 +375,9 @@ public class ClassScanner implements Serializable {
} }
} }
} }
} finally {
IoUtil.close(jar);
}
} }
/** /**