Hi Martin,

I get this error with the Buffer function (here after the full stacktrace).
This is related to the new TimSort algorithm which is now the default one.
It is probably caused by the
SubgraphDepthLocater#DepthSegment compareTo function
which is not transitive
I don't know the reason why this comparator is implemented this way,
but I think it could  help if it could be made transitive.

Michaƫl

PS the java parameter -Djava.util.Arrays.useLegacyMergeSort=true
helps to fix the problem, but I think it is not a long term solution.

Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.ComparableTimSort.mergeLo(ComparableTimSort.java:740)
    at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:477)
at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:418)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:218)
    at java.util.Arrays.sort(Arrays.java:1312)
    at java.util.Arrays.sort(Arrays.java:1506)
    at java.util.ArrayList.sort(ArrayList.java:1454)
    at java.util.Collections.sort(Collections.java:141)
at com.vividsolutions.jts.operation.buffer.SubgraphDepthLocater.getDepth(SubgraphDepthLocater.java:66) at com.vividsolutions.jts.operation.buffer.BufferBuilder.buildSubgraphs(BufferBuilder.java:289) at com.vividsolutions.jts.operation.buffer.BufferBuilder.buffer(BufferBuilder.java:156) at com.vividsolutions.jts.operation.buffer.BufferOp.bufferFixedPrecision(BufferOp.java:368) at com.vividsolutions.jts.operation.buffer.BufferOp.bufferReducedPrecision(BufferOp.java:356) at com.vividsolutions.jts.operation.buffer.BufferOp.bufferReducedPrecision(BufferOp.java:320) at com.vividsolutions.jts.operation.buffer.BufferOp.computeGeometry(BufferOp.java:312) at com.vividsolutions.jts.operation.buffer.BufferOp.getResultGeometry(BufferOp.java:299) at com.vividsolutions.jts.operation.buffer.BufferOp.bufferOp(BufferOp.java:175)
    at com.vividsolutions.jts.geom.Geometry.buffer(Geometry.java:1176)
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Jts-topo-suite-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user

Reply via email to