mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix:CollUtil.split优化切割列表参数判断,避免OOM
This commit is contained in:
parent
7af3344b5e
commit
d343051db5
@ -8,7 +8,7 @@
|
||||
* 【core 】 SerializeUtil.deserialize增加白名单类,避免RCE vulnerability(issue#3021@Github)
|
||||
|
||||
### 🐞Bug修复
|
||||
|
||||
* 【core 】 CollUtil.split优化切割列表参数判断,避免OOM
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
# 5.8.16 (2023-03-26)
|
||||
|
||||
|
@ -1189,11 +1189,12 @@ public class CollUtil {
|
||||
return result;
|
||||
}
|
||||
|
||||
ArrayList<T> subList = new ArrayList<>(size);
|
||||
int initSize = Math.min(collection.size(), size);
|
||||
List<T> subList = new ArrayList<>(initSize);
|
||||
for (T t : collection) {
|
||||
if (subList.size() >= size) {
|
||||
result.add(subList);
|
||||
subList = new ArrayList<>(size);
|
||||
subList = new ArrayList<>(initSize);
|
||||
}
|
||||
subList.add(t);
|
||||
}
|
||||
|
@ -255,6 +255,14 @@ public class CollUtilTest {
|
||||
Assert.assertEquals(3, split.get(0).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void splitTest2() {
|
||||
final ArrayList<Integer> list = CollUtil.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9);
|
||||
final List<List<Integer>> split = CollUtil.split(list, Integer.MAX_VALUE);
|
||||
Assert.assertEquals(3, split.size());
|
||||
Assert.assertEquals(3, split.get(0).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void foreachTest() {
|
||||
final HashMap<String, String> map = MapUtil.newHashMap();
|
||||
|
Loading…
x
Reference in New Issue
Block a user