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