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)

Reply via email to