Java7 and Comparison method violates its general contract!

370 views
Skip to first unread message

Meerkatzenwildschwein

unread,
Sep 29, 2012, 3:32:50 AM9/29/12
to orient-...@googlegroups.com
Hi, always I'm using Java7 I get the following exception. I've tried java7-openjdk-64 and oracle 1.7.0_4/64 on Ubuntu/Mint with orientdb 1.0.1 and 1.1.0. The author field in the order by statement is a simple string.

Exception in thread "AWT-EventQueue-0" com.orientechnologies.orient.core.exception.OCommandExecutionException: Error on execution of command: OSQLQuery [text=select * from EbookPropertyItem order by  author desc]
    at com.orientechnologies.orient.core.storage.OStorageEmbedded.executeCommand(OStorageEmbedded.java:89)
    at com.orientechnologies.orient.core.storage.OStorageEmbedded.command(OStorageEmbedded.java:74)
    at com.orientechnologies.orient.core.sql.query.OSQLQuery.run(OSQLQuery.java:68)
    at com.orientechnologies.orient.core.sql.query.OSQLSynchQuery.run(OSQLSynchQuery.java:78)
    at com.orientechnologies.orient.core.query.OQueryAbstract.execute(OQueryAbstract.java:30)
    at com.orientechnologies.orient.core.db.record.ODatabaseRecordAbstract.query(ODatabaseRecordAbstract.java:380)
    at com.orientechnologies.orient.core.db.ODatabaseRecordWrapperAbstract.query(ODatabaseRecordWrapperAbstract.java:177)
    at com.orientechnologies.orient.object.db.ODatabasePojoAbstract.query(ODatabasePojoAbstract.java:217)
    at org.rr.jeborker.db.ODocumentMapper.getNextDocuments(ODocumentMapper.java:52)
    at org.rr.jeborker.db.ODocumentMapper.getDocuments(ODocumentMapper.java:46)
    at org.rr.jeborker.db.ODocumentMapper.size(ODocumentMapper.java:111)
    at java.util.AbstractList$Itr.hasNext(AbstractList.java:351)
    at org.rr.commons.collection.IteratorList.copyIterator(IteratorList.java:256)
    at org.rr.commons.collection.IteratorList.size(IteratorList.java:213)
    at org.rr.commons.collection.CompoundList.size(CompoundList.java:170)
    at org.rr.jeborker.gui.model.EbookPropertyDBTableModel.getRowCount(EbookPropertyDBTableModel.java:87)
    at javax.swing.JTable.getRowCount(JTable.java:2665)
    at javax.swing.plaf.basic.BasicTableUI.createTableSize(BasicTableUI.java:1686)
    at javax.swing.plaf.basic.BasicTableUI.getPreferredSize(BasicTableUI.java:1727)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    at java.awt.Container.layout(Container.java:1503)
    at java.awt.Container.doLayout(Container.java:1492)
    at java.awt.Container.validateTree(Container.java:1688)
    at java.awt.Container.validate(Container.java:1623)
    at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:653)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1620)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:682)
    at java.awt.EventQueue$3.run(EventQueue.java:680)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.TimSort.mergeHi(TimSort.java:868)
    at java.util.TimSort.mergeAt(TimSort.java:485)
    at java.util.TimSort.mergeCollapse(TimSort.java:410)
    at java.util.TimSort.sort(TimSort.java:214)
    at java.util.TimSort.sort(TimSort.java:173)
    at java.util.Arrays.sort(Arrays.java:659)
    at java.util.Collections.sort(Collections.java:217)
    at com.orientechnologies.orient.core.record.impl.ODocumentHelper.sort(ODocumentHelper.java:77)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.applyOrderBy(OCommandExecutorSQLSelect.java:678)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLSelect.execute(OCommandExecutorSQLSelect.java:201)
    at com.orientechnologies.orient.core.sql.OCommandExecutorSQLDelegate.execute(OCommandExecutorSQLDelegate.java:54)
    at com.orientechnologies.orient.core.storage.OStorageEmbedded.executeCommand(OStorageEmbedded.java:82)
    ... 40 more

Parameters int TimSort.mergeHi are base1=0, len1=3, base2=23, len2=0

Luca Garulli

unread,
Sep 29, 2012, 4:59:45 AM9/29/12
to orient-...@googlegroups.com
Hi,
that bug has been fixed in current 1.2.0-SNAPSHOT. Can you try it?

Lvc@



--
 
 
 

Meerkatzenwildschwein

unread,
Sep 29, 2012, 5:18:07 AM9/29/12
to orient-...@googlegroups.com
Is there a ready to use binary/build for download?

Luca Garulli

unread,
Sep 29, 2012, 7:32:49 AM9/29/12
to orient-...@googlegroups.com
Hi,

Lvc@

On 29 September 2012 11:18, Meerkatzenwildschwein <fox_m...@kurzepost.de> wrote:
Is there a ready to use binary/build for download?

--
 
 
 

Meerkatzenwildschwein

unread,
Sep 29, 2012, 10:11:18 AM9/29/12
to orient-...@googlegroups.com
Thanks, works well with the latest 1.2 snapshot version.
Reply all
Reply to author
Forward
0 new messages