[ 
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)

Reply via email to