[ https://issues.apache.org/jira/browse/TINKERPOP-1247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Collin Scangarella updated TINKERPOP-1247: ------------------------------------------ Description: 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) was: 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) > .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)