Collin Scangarella created TINKERPOP-1247:
---------------------------------------------
Summary: .order().by(shuffle) violates transitivity
Key: TINKERPOP-1247
URL: https://issues.apache.org/jira/browse/TINKERPOP-1247
Project: TinkerPop
Issue Type: Bug
Components: process
Affects Versions: 3.0.1-incubating
Reporter: Collin Scangarella
Running .order().by(shuffle) in a query sometimes violates transitivity and
throws an exception.
This can be recreated as follows:
gremlin> (1..1000).each{graph.addVertex()}
gremlin> g.V().order().by(shuffle).limit(1) //this will need to be run several
times as the command doesn't fail every time
Here's the exception:
Comparison method violates its general contract!
java.lang.IllegalArgumentException: Comparison method violates its general
contract!
at java.util.TimSort.mergeLo(TimSort.java:777)
at java.util.TimSort.mergeAt(TimSort.java:514)
at java.util.TimSort.mergeCollapse(TimSort.java:439)
at java.util.TimSort.sort(TimSort.java:245)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
at
org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet.sort(TraverserSet.java:144)
at
org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep.barrierConsumer(OrderGlobalStep.java:54)
at
org.apache.tinkerpop.gremlin.process.traversal.step.util.CollectingBarrierStep.processNextStart(CollectingBarrierStep.java:61)
at
org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at
org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:54)
at
org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37)
at
org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:140)
at
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:117)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)