问题背景
起因
前些天测试给提了一个项目里的bug,在查看项目的一个在线数据的列表的时候发生了崩溃.然后我根据bugly定位发现是在使用Collection.sort()对list排序的时候产生Comparison method violates its general contract异常.但是Collection.sort()在JDK1.6中并没有出现过这样的异常啊…
问题定位
首先我怀着很纳闷的心情看了下bugly的崩溃日志.有这么一段日志信息
11-23 14:02:55.357 27729 32217 W System.err: java.lang.IllegalArgumentException: Comparison method violates its general contract!
11-23 14:02:55.357 27729 32217 W System.err: at java.util.TimSort.mergeLo(TimSort.java:743)
11-23 14:02:55.357 27729 32217 W System.err: at java.util.TimSort.mergeAt(TimSort.java:479)
11-23 14:02:55.357 27729 32217 W System.err: at java.util.TimSort.mergeCollapse(TimSort.java:406)
11-23 14:02:55.357 27729