当前位置: 首页 > news >正文

fastjson 序列化问题:Comparison method violates its general contract

fastjson 序列化问题:Comparison method violates its general contract
问题重现
今天在测试接口的时候,调用了Mybatis Plus 分页查询的接口,然后将查询的结果转换成 Json字符串的形式,结果报了这个错误:

java.lang.IllegalArgumentException: `Comparison method violates its general contract`!at java.util.TimSort.mergeHi(TimSort.java:899)at java.util.TimSort.mergeAt(TimSort.java:516)at java.util.TimSort.mergeForceCollapse(TimSort.java:457)at java.util.TimSort.sort(TimSort.java:254)at java.util.Arrays.sort(Arrays.java:1438)at com.alibaba.fastjson.util.TypeUtils.computeGetters(TypeUtils.java:1880)at com.alibaba.fastjson.util.TypeUtils.buildBeanInfo(TypeUtils.java:1820)at com.alibaba.fastjson.serializer.SerializeConfig.createJavaBeanSerializer(SerializeConfig.java:113)at com.alibaba.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:821)at com.alibaba.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:440)at com.alibaba.fastjson.serializer.JSONSerializer.getObjectWriter(JSONSerializer.java:448)at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:309)at com.alibaba.fastjson.JSON.toJSONString(JSON.java:793)at com.alibaba.fastjson.JSON.toJSONString(JSON.java:727)

分析
大致意思就是: fastjson去做转换的时候,调用了 timsort 排序算法,在整合的时候发生了错误。 但更具体的原因一直没有搞懂, 因为这个错误不是必然出现的。
同事告诉我可能与 需要转换的参数的长度有关。但试了一下 也不是。
所以 有知道原因的大佬,麻烦评论区告诉我一下。感谢。

解决
将fastjson 升级到 1.2.79 版本:
fastjson 1.2.79 版本

转载至:https://blog.csdn.net/weixin_44504563/article/details/124616391

http://www.lryc.cn/news/131670.html

相关文章:

  • Angular安全专辑之二——‘unsafe-eval’不是以下内容安全策略中允许的脚本源
  • 十一、Linux用户及用户组的权限信息如何查看?如何修改?什么是权限的数字序号?
  • ahooks.js:一款强大的React Hooks库及其API使用教程(二)
  • ARM 配置晶振频率
  • 最强自动化测试框架Playwright(37)-网络
  • Ant Design Pro 前端脚手架 配置混合导航
  • tcl学习之路(五)(Vivado时序约束)
  • Hlang-中英双语言编程语言使用手册
  • centos 7 安装docker
  • Spring环境搭建、SpringIOC容器基础、SpringDI基础
  • CentOS7.9手工配置静态网络流程
  • JVM面试题-1
  • 漫谈红黑树:红黑树的奇妙演化
  • docker启动rabbitmq,但是页面加载不出来问题解决
  • Qt项目报错:Cannot run compiler ‘clang++‘. /bin/sh: 1: clang++: not found
  • 奇舞周刊第503期:图解串一串 webpack 的历史和核心功能
  • 6.redis面试题和坑
  • 【ES6】—使用 const 声明
  • iOS开发 - Swift Codable协议实战:快速、简单、高效地完成JSON和Model转换!
  • RabbitMq:Topic exchange(主题交换机)的理解和使用
  • 汽车级36V、4A同步降压转换器MAX20404AFOD/VY、MAX20404AFOC/VY、MAX20404AFOA/VY开关稳压器
  • C++------利用C++实现二叉搜索树【数据结构】
  • HotSpot虚拟机之内存模型与线程安全
  • TiDB 多集群告警监控-中章-融合多集群 Grafana
  • 【图像分类】基于卷积神经网络和主动学习的高光谱图像分类(Matlab代码实现)
  • notepad++ verilog关键字自动补全
  • C语言知识
  • 数据结构基础
  • 深度学习中数据处理相关的技巧
  • wkhtmltopdf 与 .Net Core