Skip to content

sort func: java.lang.IllegalArgumentException: Comparison method violates its general contract! #114

Description

@sergeevik

Get error when try use sort on large array (81 elements)

java.lang.IllegalArgumentException: Comparison method violates its general contract!

	at java.base/java.util.TimSort.mergeHi(TimSort.java:903)
	at java.base/java.util.TimSort.mergeAt(TimSort.java:520)
	at java.base/java.util.TimSort.mergeForceCollapse(TimSort.java:461)
	at java.base/java.util.TimSort.sort(TimSort.java:254)
	at java.base/java.util.Arrays.sort(Arrays.java:1308)
	at java.base/java.util.ArrayList.sort(ArrayList.java:1804)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Functions.sort(Functions.java:2001)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Functions.call(Functions.java:2213)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata$JFunction.call(Jsonata.java:2231)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.applyInner(Jsonata.java:1741)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.apply(Jsonata.java:1673)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluateFunction(Jsonata.java:1643)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata._evaluate(Jsonata.java:192)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluate(Jsonata.java:132)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluate(Jsonata.java:2603)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.Jsonata.evaluate(Jsonata.java:2564)
	at com.dashjoin.jsonata/com.dashjoin.jsonata.ArrayTest.testSort2(ArrayTest.java:90)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)

For test:

data as json file: test.json
function: $sort($, function($l, $r){$l.*.rank < $r.*.rank})

in jsonata onlyne work fine: https://try.jsonata.org/Of91H7T0M

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions