修复fastjson的java.lang.IllegalArgumentException: Comparison method violates its general contract!

简介: 修复fastjson的java.lang.IllegalArgumentException: Comparison method violates its general contract!

报错信息

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.bm.fastjson.util.TypeUtils.computeGetters(TypeUtils.java:1880)
  at com.bm.fastjson.util.TypeUtils.buildBeanInfo(TypeUtils.java:1820)
  at com.bm.fastjson.serializer.SerializeConfig.createJavaBeanSerializer(SerializeConfig.java:113)
  at com.bm.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:821)
  at com.bm.fastjson.serializer.SerializeConfig.getObjectWriter(SerializeConfig.java:440)
  at com.bm.fastjson.serializer.JSONSerializer.getObjectWriter(JSONSerializer.java:448)
  at com.bm.fastjson.serializer.ListSerializer.write(ListSerializer.java:128)
  at com.bm.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:312)
  at com.bm.fastjson.JSON.toJSONString(JSON.java:793)
  at com.bm.fastjson.JSON.toJSONString(JSON.java:731)
  at com.bm.fastjson.JSON.toJSONString(JSON.java:688)

问题原因fastjson的一个bug

解决方式:升级fastjson到1.2.79版本(https://github.com/alibaba/fastjson/releases/tag/1.2.79

目录
相关文章
|
7月前
|
IDE Java 编译器
Java The method compareTo(Integer) in the type解决方法
Java编程过程中,Integer对象(或其它继承自Number类的包装类对象)使用Number包装类内置的compareTo()方法来比较调用对象和参数之间的大小的时候,Java的集成开发环境IDE或编译器给出了提示:The method compareTo(Integer) in the type Integer is not applicable for the arguments (Float)
61 5
|
7月前
|
Java
【java】修复:java: Error during the transformation of 'com.aicloud.data.util.ExcelUtils'; post-co...
【java】修复:java: Error during the transformation of 'com.aicloud.data.util.ExcelUtils'; post-co...
289 0
|
7月前
|
设计模式 Java 容器
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
|
4月前
java.lang.IllegalStateException: Could not find method onClickcrea(View) in a parent or ancestor Con
java.lang.IllegalStateException: Could not find method onClickcrea(View) in a parent or ancestor Con
59 1
|
5月前
|
存储 Java 编译器
Java面试题:描述方法区(Method Area)的作用以及它在JVM中的演变(从永久代到元空间)
Java面试题:描述方法区(Method Area)的作用以及它在JVM中的演变(从永久代到元空间)
64 3
|
6月前
|
Java 测试技术
Java反射之Method的invoke方法详解
Java反射之Method的invoke方法详解
|
6月前
|
Java 测试技术 持续交付
Java一分钟之-Spring Cloud Contract:契约测试
【6月更文挑战第16天】Spring Cloud Contract是微服务契约测试框架,通过DSL定义接口行为,使用WireMock生成存根进行独立开发验证。常见问题包括契约编写不清晰、未集成到CI/CD和契约版本控制混乱。例如,定义一个`GET /greeting`返回JSON响应的契约,Spring Cloud Contract会自动生成测试代码,帮助确保服务间接口一致性,提升开发效率和系统稳定性。
138 7
|
6月前
|
Java 数据库连接
惊呆了!JAVA反射:你的代码竟然能这样“自我修复”?
【6月更文挑战第30天】Java反射允许运行时访问类和方法,模拟“自我修复”能力。当UserService的getUserById方法抛出异常时,通过反射捕获异常并调用handleException进行处理。此示例展示了如何记录错误,返回默认用户对象,而无需原始代码更改。反射提供了一种动态异常处理机制,增强代码的适应性和弹性。
48 0
|
7月前
|
Java Spring
java.lang.Exception: Method a() should be public
java.lang.Exception: Method a() should be public
77 0
|
7月前
|
JSON fastjson Java
java fastJson 转JSON 两个转义
【2月更文挑战第14天】
407 2