Seite 1 von 1

unable to sort table.....

Verfasst: Dienstag 14. Januar 2014, 21:09
von kmeyster
Hallo, ich habe hier folgenden Fehlercode, aus dem ich leider nicht schlau werde:
Hintergrund: ich will eine Spalte in den Buchungen nach "Mitglieder" sortieren, leider vergebens!
Dazu kommt, das jegliche Sortierung auch in anderen Spalten mehrere Minuten dauert!!
Ich hatte das Verhalten bereits vor ein paar Tagen unter dem Stichwort "Java-Fehler" beschrieben und aber auf zu wenig Arbeitsspeicher getippt und gehofft, dass es mit mehr erledigt sei, aber vergebens.....
Ich danke vorab für die Mühen!
System 12.04 Ubuntu mit Java 7 (OpenJDK) und Jverein und Jameica und Hibiscus 2.7 nightly build
Gruß, Matthias

[Tue Jan 14 20:53:22 CET 2014][ERROR][de.willuhn.jameica.gui.parts.TablePart.orderBy] unable to sort table
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835)
at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453)
at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:374)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:182)
at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
at java.util.Arrays.sort(Arrays.java:472)
at java.util.Collections.sort(Collections.java:155)
at de.willuhn.jameica.gui.parts.TablePart.orderBy(TablePart.java:1352)
at de.willuhn.jameica.gui.parts.TablePart$3.handleEvent(TablePart.java:648)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at de.willuhn.jameica.gui.GUI.loop(GUI.java:827)
at de.willuhn.jameica.gui.GUI.init(GUI.java:310)
at de.willuhn.jameica.system.Application.init(Application.java:148)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)

Re: unable to sort table.....

Verfasst: Dienstag 14. Januar 2014, 22:58
von heiner
Hallo Matthias,

poste bitte die komplete jameica.log-Datei.

Heiner

Re: unable to sort table.....

Verfasst: Mittwoch 15. Januar 2014, 22:31
von tectumopticum
Da scheint sich was in Java 7 geändert zu haben:
-----schnipp-----
It also has something to do with the version of JDK. If it does well in JDK6, maybe it will have the problem in JDK 7 described by you, because the implementation method in jdk 7 has been changed.
Look at this:
Description: The sorting algorithm used by java.util.Arrays.sort and (indirectly) by java.util.Collections.sort has been replaced. The new sort implementation may throw an IllegalArgumentException if it detects a Comparable that violates the Comparable contract. The previous implementation silently ignored such a situation. If the previous behavior is desired, you can use the new system property, java.util.Arrays.useLegacyMergeSort, to restore previous mergesort behaviour.
I don't know the exactly reason. However, if you add the code before you use sort. It will be OK.
System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
Quelle: http://stackoverflow.com/questions/1144 ... l-contract
-----schnapp-----

Re: unable to sort table.....

Verfasst: Donnerstag 16. Januar 2014, 20:38
von kmeyster
Danke Heiner, anbei der komplette log-file von letztens.....
Danke tectumopticum, aber das wird mir jetzt echt zu hoch.....was mache ich wie, wann und wo??
Insbesondere " if you add the code before you use sort" verwirrt mich! Wo soll ich den Code adden bevor ich sortiere? Ich bin weit weg von einem Entwickler, quasi am andren Ende, bei den engagierten Anwendern ;-)

Aber das Problem, das ich geschildert habe (extrem lange Sortierzeit, bzw. Performance-Verlust), scheint jetzt hier verbreitet zu sein, habe ich in den letzten Tagen bereits mehrfach gelesen.....
Asldann, vielleicht kommen wir auf den Trichter, wenn alle an einem Strang ziehen!

Gruß, Matthias

Nachtrag: ein sehr merkwürdiges Verhalten ist außerdem:
im laufenden Programm ist eine Sortierung nach einer Spaltenüberschrift oder das ändern des Filters "Datum" unmöglich, weil endlos lange. Wenn ich jedoch den Prozess = (Hibiscus/Jameica) "kille" und neu starte ist die Sortierung oder der geänderte Datumsbereich SOFORT durchgeführt!!! Und das sind bei mir z.Zt. knapp 2000 Datensätze
jameica-20140114.log
(165.56 KiB) 261-mal heruntergeladen

Re: unable to sort table.....

Verfasst: Montag 27. Januar 2014, 20:34
von heiner
Hallo,

der Bug ist beseitigt. Olaf hat den passenden Hinweis gegeben. Auslieferung mit der nächsten Version.

Heiner