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)
unable to sort table.....
Moderator: heiner
- heiner
- Administrator
- Beiträge: 4510
- Registriert: Freitag 30. Oktober 2009, 16:44
- JVerein-Version: aktuelle Entwicklerversion
- Betriebssystem: W10
- Kontaktdaten:
Re: unable to sort table.....
Hallo Matthias,
poste bitte die komplete jameica.log-Datei.
Heiner
poste bitte die komplete jameica.log-Datei.
Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
-
- Beiträge: 42
- Registriert: Donnerstag 12. November 2009, 23:39
- Verein: Heimatverein Bockhorst e.V.
Förderverein Kirchenmusik in Bockhorst e.V. - Mitglieder: 440
- JVerein-Version: meistens eine Developer-Vers.
- Betriebssystem: Ubuntu 18.04.2 LTS
Re: unable to sort table.....
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-----
-----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.....
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
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
- heiner
- Administrator
- Beiträge: 4510
- Registriert: Freitag 30. Oktober 2009, 16:44
- JVerein-Version: aktuelle Entwicklerversion
- Betriebssystem: W10
- Kontaktdaten:
Re: unable to sort table.....
Hallo,
der Bug ist beseitigt. Olaf hat den passenden Hinweis gegeben. Auslieferung mit der nächsten Version.
Heiner
der Bug ist beseitigt. Olaf hat den passenden Hinweis gegeben. Auslieferung mit der nächsten Version.
Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.