portfolio
portfolio copied to clipboard
bug Diagramm Vermögensaufstellung - Bestände wird nicht angezeigt
Dieser Bug ist vermutlich in der 0.36 dazu gekommen. Startet man PP und geht gleich in das besagte Diagramm, dann wird es fehlerfrei angezeigt. War man jedoch zuvor in der Performance-Berechnung, dann ist ein wechsel nach Bestände nicht mehr möglich. Der Screen bleibt leer.
Neuinstallation hilft nichts. Bug in PP.
Ich nutze v0.37.1 unter Ubuntu.
Ob diese Meldung im Fehlerprotokoll etwas damit zu tun hat?
`Sun Jan 20 17:02:38 CET 2019
Problems occurred when invoking code from plug-in: "org.eclipse.equinox.app".
java.lang.NoClassDefFoundError: org/eclipse/swt/accessibility/AccessibleObject
at org.eclipse.equinox.launcher.JNIBridge._takedown_splash(Native Method)
at org.eclipse.equinox.launcher.JNIBridge.takeDownSplash(JNIBridge.java:173)
at org.eclipse.equinox.launcher.Main.takeDownSplash(Main.java:2219)
at org.eclipse.equinox.launcher.Main$SplashHandler.run(Main.java:120)
at org.eclipse.core.runtime.internal.adaptor.DefaultStartupMonitor.applicationRunning(DefaultStartupMonitor.java:70)
at org.eclipse.equinox.internal.app.EclipseAppHandle$1.run(EclipseAppHandle.java:271)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.equinox.internal.app.EclipseAppHandle.applicationRunning(EclipseAppHandle.java:261)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1108)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:165)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:199)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:391)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:246)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
at org.eclipse.equinox.launcher.Main.main(Main.java:1474)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.accessibility.AccessibleObject
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 26 more
Sehr komisch. Vor allem weil die ClassNotFoundException manchmal auftritt, manchmal nicht. Ich glaube diese konkrete Fehlermeldung hat vielleicht nichts damit zu tun. _takedown_splash könnte auf das Schließen des Splash Screens hindeuten.
Ich nutze v0.37.1 unter Ubuntu.
Mit 0.37.0 ist eine neue Version des Eclipse Framework gekommen. Hast Du irgendwelche Parameter im PP.ini die auf GTK2 zeigen?
Das steht in der PP.ini (die ist wie sie nach dem download aussieht):
-startup plugins/org.eclipse.equinox.launcher_1.5.100.v20180827-1352.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.800.v20180827-1352 -vmargs -XX:+IgnoreUnrecognizedVMOptions --add-modules=ALL-SYSTEM --illegal-access=permit -XX:+UseG1GC -XX:+UseStringDeduplication -Xms256m -Xmx768m -Djdk.gtk.version=3
In einem neu angelegten Portfolio hat es auch nicht geklappt. Der Screen bleibt leer. Das Fehlerprotokoll diesmal auch.
Wieso wird mir eigentlich beim Wechsel zwischen den Ansichten Vermögensaufstellung und Bestände (oder anderen screens) die PP-Datei als geändert angezeigt? Ich habe doch gar nichts geändert. o_O
Sieht soweit alles okay aus.
Was passiert wenn Du GTK2 nutzt:
SWT_GTK3=0 ./PortfolioPerformance
Die Linux Version hat das Update nicht gut vertragen - siehe auch #1089 😬
Mit GTK2 ist es genauso. Sicher dass es an Linux-Bibliotheken liegt? Grundsätzlich kann ich das Diagramm sehen. Nur wenn ich von "Vermögensaufstellung" komme geht es nachhaltig kaputt, d.h. bis zum nächsten Programmstart. Ich tippe eher auf einen bug in PP. Setzt die "Vermögensaufstellung" irgend welche globalen Variablen, welche die views kaputt machen könnten?
Auf meiner Linux Installation kann ich folgendes Verhalten beobachten: der erste Aufruf scheint erfolgreich zu sein (bei mir ist es egal ob ich vorher in der Vermögensaufstellung war oder nicht). Ab dem zweiten Aufruf wird (meistens) nichts gezeigt. 😬
Es scheint mir aber ein Rendering Problem zu sein. Je nachdem wie ich das Fenster aufziehe, sehe ich immer noch Teile von dem Kuchendiagramm. Das ganze tritt bei mir nur unter Linux auf - unter macOS (ich entwickele auf dem mac) habe ich das Problem nicht.
Vielleicht noch als Hintergrund: alle Kuchendiagramme (Bestände, in den Klassifikationen) verwenden einen Webbrowser und zeigen HTML Seiten (wohingegen alle anderen Ansichten native auf SWT basieren).
Ich hoffe ja immer noch auf den "Embedded Chromium" für SWT - siehe https://github.com/maketechnology/chromium.swt Allerdings wird es Einschränkungen geben: nur noch 64bit, aktuell nur GTK2 Unterstützung, ... aber das ist eher Zukunft.
Wegen dem aktuellen Problem habe ich momentan keine Ideen. Meine Suche auf https://bugs.eclipse.org hat auch noch nicht wirklich was zu Tage gebracht. 🤔 Ideen?
Komischer Fehler. Bei mir bewirkt ein ändern der Fenstergröße gar nichts.
Und wenn du noch mal ein refresh/repaint am Ende der Funktion dran hängst?
Wieso wurde das anders implementiert? SWT hat doch auch pie charts. Notfalls einfach die pie charts mit SWT zeichnen und schon wird es funktionieren. :-)
SWT hat doch auch pie charts.
Welche meinst Du da?
Ich nutze http://swtchart.org. Die ist klein und schnell. Aber hat leider keine Kuchendiagramme.
Notfalls einfach die pie charts mit SWT zeichnen und schon wird es funktionieren. :-)
Hatte ich mal. Aber dann stellt man fest wenn es um Label Positionierung, Tooltips, usw. geht, dann ist das doch mehr Aufwand. Und eigentlich wollte ich alle Grafiken auf den embedded Browser umstellen. Es gibt nämlich richtig coole JavaScript Chart Bibliotheken.
Laut google Bildersuche geht es, aber vermutlich wurden die Diagramme alle mit JavaFX (siehe https://o7planning.org/de/11105/anleitung-javafx-piechart) oder jfreechart (sehr umfangreiche Java lib) gemacht. Jfreechart nutze ich selbst und das klappt super.
Um coole pie charts zu malen braucht man kein java script. Das wäre auch etwas merkwürdig, wenn PP extra als Desktop Programm gebaut wird, nur um am Ende einen Brower zu simulieren.
bug tritt in der Version 0.38.0 (linux, x86_64) immer noch auf
Wenn du eh html code generierst, kannst du den nicht im richtigen Browser öffnen? Falls das Diagramm dort auch nicht richtig dargestellt wird, kannst du die Seite wenigstens mit board mitteln untersuchen, um den Fehler zu finden.
Wenn du eh html code generierst, kannst du den nicht im richtigen Browser öffnen?
Ich weiß nicht genau wie Du das meinst. Aber nutze die Java/JavaScript Bridge um die Daten anzuzeigen. Da wird kein Web Request oder ähnliches gemacht.
Wie gesagt: ich hoffe auf die embedded Chromium Variante (siehe oben) um das Problem zu lösen. (mir fällt es schwer das Projekt einzuschätzen, aber es wird bestimmt noch 6 Monate dauern bis das produktionsreif ist).
Die Frage ist: was machen wir bis diese Lösung da ist?
- JavaFX: habe ich vor ein paar Jahren schon mal ausprobiert. War langsam. JavaFX ist nicht Teil des OpenJDK und erst ab frei Java11 verfügbar. Das ist ein massiver Aufwand für einen temporäre Lösung.
- JfreeChart: müsste man ausprobieren. Aber wie:
- "org.jfree.experimental.chart.swt.ChartComposite from JFreeChart SWT experimental project, which I can not say works seamless"
- SWT_AWT Bridge: ja, aber dann ziehe ich nur für diesen Bibliothek den kompletten AWT Rattenschwanz rein. Und der wird aktuell nicht verwendet (und könnte ich mit Java11 jcreate auch aus dem JRE rauswerfen).
- https://github.com/knowm/XChart - gerade gefunden, klein, allerdings keine SWT Bridge, sieht aber nicht schlecht aus
- Custom Chart auf den Canvas malen: zumindest in einer wirklich simplen Version könnte das gehen. Man kann beliebig Aufwand reinstecken - Labels, Tooltips, Animationen, ...
Alles keine schnelle Lösung...
Um coole pie charts zu malen braucht man kein java script. Das wäre auch etwas merkwürdig, wenn PP extra als Desktop Programm gebaut wird, nur um am Ende einen Brower zu simulieren.
Ja und Nein. Schau mal Electron an. Das sind alles JavaScript Desktop apps. Ist auch kein Wunder: der Browser ist schon fast ein Betriebssystem und die beste Möglichkeit Cross-Platform Apps zu bauen. Und wenn ich sehe wie viele Chart-Bibliotheken es für JavaScript gibt - und kaum welche für Java...
Mit SWT sitze ich sowieso schon auf einem "alten" Ast. Mein mittelfristiges Ziel wäre immer mehr auf Chromium zu ziehen und damit wieder aktuelle, frische GUIs bauen zu können.
Hm schade. Dann lässt sich der Fehler auch schlecht untersuchen. Ich kenne "JavaScript Bridge" nicht und kann dir da leider nicht weiter helfen.
Mit GUIs unter Java hatte ich noch nie Plattform-Probleme. Java läuft inzwischen auf allen möglichen Hardware-Konstellationen, dass man auch ohne JS auskäme. Aber ich kenne dass. Alle wollen Web-Anwendungen haben. Also nimmt man smartGWT/Vaadin, um aus Java Code JS zu generieren. Mit App Entwicklung habe ich mich nie befasst.
Eine schnelle Lösung fällt mir auch nicht ein. Da bleibt nur den bug näher zu analysieren. Vielleicht findest du noch heraus wie man das irgend wie debuggen/im richtigen Browser anzeigen lassen kann. Gibts bei dieser JS Bridge soetwas wie eine Consolenausgabe wo man sich JS Fehler anzeigen lassen kann? Ich kann mir nicht vorstellen dass noch nie jemand ein Problem hatte. Für mich sieht es so aus als ob das Diagramm eine Größe von 0 oder 1 px hat und darauf hin wegen JS Fehler die leere Seite kommt.
Gibts bei dieser JS Bridge soetwas wie eine Consolenausgabe wo man sich JS Fehler anzeigen lassen kann?
Nein. Und das hindert auch extrem.
Ich kann mir nicht vorstellen dass noch nie jemand ein Problem hatte. Für mich sieht es so aus als ob das Diagramm eine Größe von 0 oder 1 px hat und darauf hin wegen JS Fehler die leere Seite kommt.
Natürlich. Seit der Umstellung auf GTK3 sind da ständig Probleme. Und seit Version 2018-12 hat Eclipse auch die Unterstützung für GTK2 komplett rausgeworfen - darum mache ich noch kein Update. Es nervt schon - ich hatte gehofft mit wenig mehr Aufwand auch eine Linux Version zu haben, aber da ist wohl nicht der Fall. 😞
Gibt es hierzu irgendwelche Updates? Das Problem besteht ja weiterhin unter allen möglichen Linux Distributionen.
Gibt es hierzu irgendwelche Updates? Das Problem besteht ja weiterhin unter allen möglichen Linux Distributionen.
Hierzu gibt es aktuelle Neuigkeiten im Forum.
Mögliches Duplikat von https://github.com/buchen/portfolio/issues/2193
Ich nutze http://swtchart.org. Die ist klein und schnell. Aber hat leider keine Kuchendiagramme.
Das hat sich zwischenzeitlich übrigens geändert: https://github.com/eclipse/swtchart/wiki/PieCharts
Wir es in der Zukunft ein Update geben für Linux? Der fehler besteht nach wie vor Releases [0.59.0]