Das Problem kann ich genau einmal lösen, wenn ich alles was Dividenden angeht mit dem Knopf “Alle entfernen” lösche. Es gibt eine Fehlermeldung.
Danach kann ich die Div%/Jahr wieder einblenden und sehe wieder Werte.
Sobald ich aber PP schließe, oder in den Hintergrund verschiebe (anderes Fenster aktiv schalte), verschwinden die Div%/Jahr-Werte wieder…
Das Problem ist reproduzierbar. Hat jemand eine Lösung dafür?
Bin kein Programmierer… Meinst du das Fehlerprotokoll als Datei?
Ansonsten steht da nur “Internal Error” und das nur dann, wenn ich den Fehler (siehe Eingangspost) erzeuge.
Im Textprotokoll habe ich folgendes gefunden:
!ENTRY org.eclipse.e4.ui.workbench 4 0 2024-09-22 10:30:53.826
!MESSAGE Internal Error
!STACK 0
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:4918)
at org.eclipse.swt.SWT.error(SWT.java:4833)
at org.eclipse.swt.SWT.error(SWT.java:4804)
at org.eclipse.swt.widgets.Widget.error(Widget.java:450)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:369)
at org.eclipse.swt.widgets.Widget.getData(Widget.java:544)
at name.abuchen.portfolio.ui.util.viewers.ColumnViewerSorter$ViewerSorter.setupSortingContext(ColumnViewerSorter.java:379)
at name.abuchen.portfolio.ui.util.viewers.ColumnViewerSorter$ViewerSorter.compare(ColumnViewerSorter.java:354)
at org.eclipse.jface.viewers.ViewerComparator.lambda$0(ViewerComparator.java:206)
at java.base/java.util.TimSort.countRunAndMakeAscending(Unknown Source)
at java.base/java.util.TimSort.sort(Unknown Source)
at java.base/java.util.Arrays.sort(Unknown Source)
at org.eclipse.jface.viewers.ViewerComparator.sort(ViewerComparator.java:206)
at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:1034)
at org.eclipse.jface.viewers.ColumnViewer.getSortedChildren(ColumnViewer.java:826)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefreshAll(AbstractTableViewer.java:691)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:637)
at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:629)
at org.eclipse.jface.viewers.StructuredViewer.lambda$2(StructuredViewer.java:1468)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1358)
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1468)
at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:526)
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1422)
at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper.doRemoveGroup(ShowHideColumnHelper.java:812)
at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper$5.run(ShowHideColumnHelper.java:760)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4071)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3659)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:168)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
vielen Dank für die Fehlermeldung und das Protokoll. Ich habe mir das im Code angeschaut.
Es sind tatsächlich zwei unabhängige Fehler (die ich beide mit der nächsten Version beheben werde).
Erstens: vor ein paar Monaten habe ich die Berechnung der Wert so geändert, dass nur noch die angezeigten Werte berechnet werden. Das ist deutlich schneller. Aber vergessen, dass für die Div%/Jahr der gleitende Durchschnitt notwendig ist.
Zweitens: wenn die gerade entfernte Spalte zufällig die Sortierreihenfolge bestimmt hat, kommt es zu diesem “widget is disposed” Fehler.