[
https://issues.apache.org/jira/browse/JENA-2333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17555721#comment-17555721
]
Andy Seaborne commented on JENA-2333:
-------------------------------------
It seems that somewhere there is a pair of values that aren't comparing
properly.
This is not a race condition - this is all sequential code. What changes is the
order in the internal data structures of GraphMem which cause different order
in the comparisons for sorting.
Presumably that is why you have many {{[ rdfs:label "VIVO"@de ]}} in the test
data.
> Sorting by labels in SPARQL query fail
> --------------------------------------
>
> Key: JENA-2333
> URL: https://issues.apache.org/jira/browse/JENA-2333
> Project: Apache Jena
> Issue Type: Bug
> Components: ARQ, Jena
> Affects Versions: Jena 2.10.1, Jena 3.16.0, Jena 4.5.0
> Reporter: Georgy Litvinov
> Priority: Major
> Attachments: SortingBug.java, bad_data_out.n3
>
>
> {color:#172b4d}Sorting by labels fail on this data set.{color}
> {color:#172b4d}Simple Java example to reproduce attached.{color}
> {color:#172b4d}Looks like a race condition involved.{color}
> {noformat}
> SELECT ?label WHERE {
> ?object <http://www.w3.org/2000/01/rdf-schema#label> ?label . } ORDER BY
> ASC(?label)
> {noformat}
>
> {noformat}
> java.lang.IllegalArgumentException: Comparison method violates its general
> contract!
> at java.base/java.util.TimSort.mergeLo(TimSort.java:781)
> at java.base/java.util.TimSort.mergeAt(TimSort.java:518)
> at java.base/java.util.TimSort.mergeCollapse(TimSort.java:448)
> at java.base/java.util.TimSort.sort(TimSort.java:245)
> at java.base/java.util.Arrays.sort(Arrays.java:1441)
> at
> org.apache.jena.atlas.data.AbortableComparator.abortableSort(AbortableComparator.java:57)
> at
> org.apache.jena.atlas.data.SortedDataBag.iterator(SortedDataBag.java:205)
> at
> org.apache.jena.atlas.data.SortedDataBag.iterator(SortedDataBag.java:192)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterSort$SortedBindingIterator.initializeIterator(QueryIterSort.java:88)
> at
> org.apache.jena.atlas.iterator.IteratorDelayedInitialization.init(IteratorDelayedInitialization.java:38)
> at
> org.apache.jena.atlas.iterator.IteratorDelayedInitialization.hasNext(IteratorDelayedInitialization.java:48)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBinding(QueryIterPlainWrapper.java:59)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:58)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> at org.apache.jena.sparql.exec.RowSetStream.hasNext(RowSetStream.java:47)
> at
> org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:81)
> at test.SortingBug.isReproduced(SortingBug.java:53)
> at test.SortingBug.main(SortingBug.java:39)
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]