v4.8.9
🐛 Bug Fixes
- 修复
MapUtils.flat()配合 同键多值 参数使用时,ARRAY_KEYS的 UUID 末尾段若为纯数字,会导致DefaultParamResolver.extractFieldParams()中Integer.parseInt抛出NumberFormatException的问题- 根因:
INDEX_PATTERN原为\d+(无长度限制),UUID 末尾 12 位纯数字被匹配后传入Integer.parseInt,超出Integer.MAX_VALUE导致异常 - 修复 1:将
INDEX_PATTERN改为\d{1,4},限制索引后缀最多 4 位数字(最大 9999) - 修复 2:移除
ARRAY_KEYS与FIELD_PARAM中 UUID 的分隔符-,从根源上避免 UUID 与检索参数分隔符的意外交互
- 根因:
该 BUG 只在前端使用 同键多值 参数的情况下放生(例如:GET /query?status=1&status=2),且触发概率为 0.36%,即项目重启 1000次,平均有 3 ~ 4 次会触发该 BUG,如果不幸触发该 BUG 又来不及升级,再次重启即可规避。