Looly
|
84561772e1
|
prepare 5.8.46
|
2026-05-25 15:52:18 +08:00 |
|
Looly
|
079a8136d6
|
修复BeanConverter和MapConverter源Bean判断问题(pr#4252@Github)
|
2026-05-19 21:42:54 +08:00 |
|
Golden Looly
|
62f240ae75
|
Merge pull request #4252 from Faerytale/v5-dev
fix: BeanConverter和MapConverter对源Bean使用isReadableBean替代isBean
|
2026-05-19 21:40:03 +08:00 |
|
Faerytale
|
64fc614618
|
fix: BeanConverter和MapConverter对源Bean使用isReadableBean替代isBean
修了 #4245 的问题。当 List 里的元素类用了 @Setter(AccessLevel.PROTECTED)
只有 protected setter 的时候,BeanUtil.copyProperties 会抛
ConvertException: Unsupported source type,但实际上这个类有 public getter,
作为源对象完全可以被读取。
原因是 BeanConverter 和 MapConverter 在处理源对象时用 isBean() 做检查,
但 isBean() 看的是有没有 public setter,这是判断"能不能写"的标准,
而源对象需要的是"能不能读"。BeanUtil 里其实已经有 isReadableBean() 方法
(检查 public getter),正好适合这个场景,换过来就行。两个转换器各改了一行,
另外补了两个单测覆盖这种情况。
|
2026-05-19 02:15:39 +08:00 |
|
Looly
|
eaecb109cf
|
修复VersionUtil比对null时结果异常问题(issue#IJNFQZ@Gitee)
|
2026-05-14 22:30:38 +08:00 |
|
Looly
|
6d8dd97292
|
RegexPool.PLATE_NUMBER新增粤AP号段支持(issue#IJNDJR@Gitee)
|
2026-05-14 16:29:23 +08:00 |
|
Looly
|
cc6df6990b
|
update postgre
|
2026-05-09 10:52:03 +08:00 |
|
Looly
|
076f5096df
|
update thymeleaf
|
2026-05-09 10:50:50 +08:00 |
|
Looly
|
9505fdab70
|
修复ExpressionEngine中SpELEngine、MVEL白名单无效问题
|
2026-05-09 10:31:25 +08:00 |
|
Looly
|
49858088d3
|
修复AI SPI classloader找不到实现问题(issue#4241@Github)
|
2026-04-07 10:49:36 +08:00 |
|
Looly
|
2441c92ada
|
修复AI SPI classloader找不到实现问题(issue#4241@Github)
|
2026-04-07 10:24:34 +08:00 |
|
Looly
|
3bbbf2a1aa
|
add test
|
2026-03-23 10:12:30 +08:00 |
|
Looly
|
0d586c4a0f
|
修复Page和PageResult首页调用问题(issue#IH7A18@Gitee)
|
2026-03-20 12:13:19 +08:00 |
|
Looly
|
d5dac7cd51
|
AnnotationUtil新增两级缓存架构,提升高频注解解析性能(pr#1434@Gitee)
|
2026-03-19 15:47:13 +08:00 |
|
Looly
|
21a68690ee
|
!1434 perf(core): 为AnnotationUtil新增两级缓存架构,提升高频注解解析性能
Merge pull request !1434 from 07heco/perf/annotationutil-multilevel-cache
|
2026-03-19 07:43:58 +00:00 |
|
07heco
|
e822a2c321
|
perf(core): 为AnnotationUtil新增两级缓存架构,提升高频注解解析性能
|
2026-03-12 14:31:14 +08:00 |
|
chinabugotech
|
85606f8cdf
|
update CHANGELOG.md.
Signed-off-by: chinabugotech <bugo@bugotech.cn>
|
2026-03-12 05:50:44 +00:00 |
|
chinabugotech
|
582b04f1f8
|
🐢prepare5.8.45
|
2026-03-12 13:18:00 +08:00 |
|
chinabugotech
|
34bebfd6f3
|
🚀release 5.8.44
|
2026-03-12 11:40:48 +08:00 |
|
Looly
|
9e7413b9be
|
ReflectUtil增加二级缓存(pr#1433@Gitee)
|
2026-03-11 15:22:25 +08:00 |
|
Looly
|
1ab2b4c79a
|
!1433 perf(core): 为ReflectUtil.getMethod新增细粒度方法查找缓存,提升高频反射调用性能
Merge pull request !1433 from 07heco/perf/reflectutil-method-cache
|
2026-03-11 06:59:56 +00:00 |
|
Golden Looly
|
361e39ea5b
|
Merge pull request #4231 from fourangrymen/v5-dev
修复`CharSequenceUtil.center`两个重载方法的注释问题
|
2026-03-07 20:03:30 +08:00 |
|
fourangrymen
|
9bc7ed4599
|
修复CharSequenceUtil.center两个重载方法的注释错误
|
2026-03-07 16:12:54 +08:00 |
|
Looly
|
af5f2d97b6
|
修复QuarterfromMonth计算错误问题(issue#IF15CP@Gitee)
|
2026-03-05 09:06:39 +08:00 |
|
07heco
|
80f5d56dbc
|
perf(core): 为ReflectUtil.getMethod新增细粒度方法查找缓存,提升高频反射调用性能
|
2026-03-05 02:04:35 +08:00 |
|
Looly
|
52603f3b12
|
FastDateParser改进在JDK25下三字母时区警告(issue#4100@Github)
|
2026-03-02 18:57:04 +08:00 |
|
Looly
|
ab3e52ece7
|
update dependency
|
2026-03-02 18:11:56 +08:00 |
|
Looly
|
b54c4cd0ff
|
修复EnumUtil和AbstractCache的bug
|
2026-03-02 18:09:02 +08:00 |
|
Looly
|
cff4c65245
|
!1432 fix: 修复 EnumUtil 递归更新异常 + Cache 高并发双重检查锁逻辑缺陷
Merge pull request !1432 from Busyliu/v5-dev
|
2026-03-02 09:59:44 +00:00 |
|
Busyliu
|
1ac564c246
|
fix(RC4): 修复 initSBox 中运算符优先级错误导致加密结果偏差
原代码:`j = (j + sbox[i] + (key[i % key.length]) & 0xFF) % SBOX_LENGTH`
由于 Java 中 `&` 的优先级低于 `+`,实际计算等同于:
`j = ((j + sbox[i] + key[i % key.length]) & 0xFF) % 256`
而标准 RC4 算法要求先将 byte 转为无符号整数再参与加法:
`j = (j + sbox[i] + (key[i % key.length] & 0xFF)) % SBOX_LENGTH`
当 key 中含有非 ASCII 字符(如中文,UTF-8 编码后可能产生负 byte 值)时,
原实现的 sbox 初始化结果与标准 RC4 不一致,导致加密结果错误。
|
2026-03-02 05:43:09 +00:00 |
|
Busyliu
|
b4f1787df5
|
fix(BoundedPriorityQueue): 修复 capacity<=0 时 offer() 抛 NullPointerException 的问题
当使用 capacity=0 构造 BoundedPriorityQueue 时,offer() 中 size()>=capacity 始终为 true,
调用 peek() 返回 null,然后 comparator.compare(e, null) 抛出 NullPointerException。
修复:
1. 构造函数中对 capacity<=0 做保护(初始容量最小为1,避免 PriorityQueue 内部异常)
2. offer() 中增加 capacity<=0 的提前返回,不接受任何元素
|
2026-03-02 05:42:05 +00:00 |
|
Busyliu
|
885fd28de6
|
fix(Money): 为 divide 和 divideBy 方法增加除零校验
当除数 val 为 0 时,Math.round(cent / 0.0) 会得到 Long.MAX_VALUE 分(约 9.2 * 10^16 元),
而不是抛出异常,导致计算结果错误且无任何提示。
增加显式的除零检查,在 val == 0 时抛出 ArithmeticException。
|
2026-03-02 05:41:12 +00:00 |
|
Busyliu
|
8710d04640
|
fix(ArrayUtil): 为 copy 方法增加 null 参数防御性校验
当 src 或 dest 为 null 时,提前抛出明确的 NullPointerException,
而非让 System.arraycopy 抛出不直观的异常,便于调用方定位问题。
|
2026-03-02 05:38:29 +00:00 |
|
Busyliu
|
b0375a8c04
|
fix(TemporalUtil): 修复 offset(Temporal,DayOfWeek,boolean) 缺少 static 修饰符及 null 检查
工具类中该方法遗漏了 static 关键字,导致无法以工具类方式调用(需要先实例化 TemporalUtil)。
同时与同类的 offset(T, long, TemporalUnit) 方法保持一致,增加 null 检查,
避免传入 null 时抛出 NullPointerException。
|
2026-03-02 05:35:54 +00:00 |
|
Busyliu
|
6d99a39857
|
test(EnumUtil): 增加枚举静态初始化递归场景的单元测试
新增 SelfRefEnum 枚举和 getFieldValuesRecursiveTest 测试方法,
验证 fix issue#IDQYJK(修复枚举类静态初始化中调用 EnumUtil 导致 Recursive update 的问题)
|
2026-03-02 05:05:27 +00:00 |
|
Busyliu
|
f8184b0087
|
fix(Tuple): 修复 Tuple 不可变性破坏问题,增加 defensive copy
Tuple 设计为不可变类型(注释:不可变数组类型),但原实现存在两处不可变性破坏:
1. 构造函数直接赋值 `this.members = members`,外部修改传入数组会影响 Tuple 内部状态
2. `getMembers()` 直接返回内部数组引用,外部可通过引用直接修改 Tuple 内容
修复:在构造函数中对传入数组做 defensive copy,getMembers() 返回副本
|
2026-03-02 05:03:06 +00:00 |
|
Busyliu
|
b7e9341e32
|
fix(Cache): 修复高并发下双重检查锁未正确判断缓存值导致反复覆盖的问题
在 AbstractCache.get(key, isUpdateLastAccess, timeout, supplier) 方法中,
双重检查获取到缓存值后,未对结果进行 null 判断就直接调用 supplier 并覆盖,
导致高并发场景下出现不必要的 supplier 调用和潜在的数据不一致。
修复:在双重检查后增加 null 判断,仅当缓存确实为空时才调用 supplier。
Fixes #IDQGP2
|
2026-03-02 04:58:37 +00:00 |
|
Busyliu
|
aa4da21aae
|
fix(EnumUtil): 修复枚举类静态初始化时递归调用导致 IllegalStateException: Recursive update 的问题
使用 get + putIfAbsent 替代 computeIfAbsent,避免 ConcurrentHashMap 在递归场景下
抛出 Recursive update 异常。修复 issue#IDQYJK
|
2026-03-02 02:34:54 +00:00 |
|
Looly
|
a6b1bebeac
|
修复ReUtil.replaceAll空指针问题(issue#IDPHVW@Gitee)
|
2026-02-09 09:14:27 +08:00 |
|
Looly
|
c2abe4c9d3
|
修复XmlUtil.xmlToBeanoption参数无效问题(issue#4226@Github)
|
2026-02-09 08:57:14 +08:00 |
|
Looly
|
84a6132c26
|
修复JschSessionPool回收导致的session未关闭问题(issue#4223@Github)
|
2026-02-03 15:41:42 +08:00 |
|
Looly
|
b3ec45a0ac
|
修复TransMap.computeIfAbsentmappingFunction处理不一致问题(issue#IDM6UR@Gitee)
|
2026-02-01 21:42:56 +08:00 |
|
Looly
|
dca189f700
|
修复MultiResource游标歧义问题(issue#IDNAOY@Gitee)
|
2026-02-01 21:32:50 +08:00 |
|
Looly
|
9c35fa9e3f
|
修复BufferUtilcopy歧义问题(issue#IDN097@Gitee)
|
2026-02-01 20:19:10 +08:00 |
|
Looly
|
c0bb9675b2
|
修复MultiResource游标歧义问题(issue#IDNAOY@Gitee)
|
2026-02-01 20:05:21 +08:00 |
|
Looly
|
7e0199c1a9
|
AppendableWriter增加checkNotClosed(issue#IDMZ5K@Gitee)
|
2026-02-01 19:35:00 +08:00 |
|
Looly
|
8d2c5b0449
|
DateUtil.normalize方法中正则预编译提升效率(pr#4221@Gitee)
|
2026-02-01 19:28:56 +08:00 |
|
Golden Looly
|
190bdf2585
|
Merge pull request #4221 from dingqianwen/v5-master
提取并预编译日期时间正则提高性能
|
2026-02-01 19:26:04 +08:00 |
|
qwding
|
47479e9262
|
提取并预编译日期时间正则提高性能
提取DateUtil#normalize 方法中 [/.年月] 和 [时分秒] 为静态常量,避免重复编译正则提升效率。
|
2026-01-31 14:13:48 +08:00 |
|
Looly
|
29ac254f06
|
修复TransMap.computeIfAbsentmappingFunction处理不一致问题(issue#IDM6UR@Gitee)
|
2026-01-28 10:32:14 +08:00 |
|