一、该问题的重现步骤是什么?
1. 商业版由4.2.0版本升级到4.3.0版本
2. 部署新版本后故意少启动必要依赖服务,触发错误日志插入
3.当第二条错误日志插入是,会报主键唯一性约束导致无法成功插入。
二、你期待的结果是什么?实际看到的又是什么?
错误日志能够正常插入,实际上无法插入成功。
所有依赖LogAbstract类的,或者说类型为NULL的值在转换为-1时,刚好此属性对应数据库的表id时,不要影响后续的系统正常插入
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
使用的是最新的bladx的商业版4.3.0版本,在win11操作系统上。
四、请提供详细的错误堆栈信息,这很重要。
问题描述:v4.3.0 版本Feign接口调用Long类型由Null自动转换为-1
问题详情:在v4.3.0版本,系统记录错误日志的时候,通过Feign接口调用日志服务接口。日志对象中的ID在调用方为Null,接收方接收对象时ID由Null变成-1导致雪花算法自动生成ID失败。产生数据库唯一ID错误
问题排查:经排查问题出现在Jackson序列化配置,Git提交记录为2024-11-28 :zap: 优化报文加密的序列化逻辑
请重点查看blade-core-tool工程里面JacksonConfiguraton.java 96行代码记录。
五、若有更多详细信息,请在下面提供。
其它相关信息:https://blog.csdn.net/qqqq494114408/article/details/130215551
最后,如果确认此是bug,大概什么时间可以修复呀,盼答复,谢谢!
先这样临时处理,下版本从底层修复,若想直接修复可参考这个提交(需要下载对应版本的bladex-tool后本地执行mvn clean install安装最新依赖):https://center.javablade.com/blade/BladeX-Tool/commit/5d86a7647db5d82feb65a969313608f1a21c7f8d
谢谢快速回复,这里我们已经做了临时处理,同时期待新版的统一处理。
扫一扫访问 Blade技术社区 移动端