修复SONArray的add()方法抛出OutOfMemory异常问题

This commit is contained in:
Looly
2023-08-30 22:10:03 +08:00
parent 45e9006a94
commit 9ba8f9ca5d
3 changed files with 11 additions and 1 deletions

View File

@@ -2,6 +2,7 @@ package cn.hutool.core.collection;
import cn.hutool.core.comparator.PinyinComparator;
import cn.hutool.core.comparator.PropertyComparator;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Matcher;
import cn.hutool.core.util.ArrayUtil;
@@ -431,6 +432,10 @@ public class ListUtil {
if (index < size) {
list.set(index, element);
} else {
// issue#3286, 增加安全检查最多增加2倍
if(index > (list.size() + 1) * 2) {
throw new UtilException("Index is too large:", index);
}
for (int i = size; i < index; i++) {
list.add(paddingElement);
}