Internal Error / assertion failed

Hallo zusammen,
ich habe einen sehr seltsamen Fehler entdeckt:
Unter Performance/Berechnung im Reiter Berechnung wurde die Spalte Wert zu klein, ich habe also die Spaltenbreite mit Doppelklick auf die Spaltenbegrenzung rechts neben “Wert” automatisch anpassen wollen. Dabei bekam ich folgende Fehlermeldung:


Die Spaltenbreite wurde aber dennoch korrekt angepasst. Danach war ich irgendwo anders in PP unterwegs, als ich aber später nach Performance/Berechnung zurückkehrte, waren die Spalten “Bezeichnung” und “Werte” verschwunden. Also habe ich das Abend-Backup von “~/.PortfolioPerformance/workspace” mehrfach zurückgeholt und ein wenig herumgespielt. Wenn ich den Doppelklick neben “Bezeichnung” mache, verschwindet nur diese Spalte. Wenn ich die Spaltenbreite anschließend von Hand verändere, tritt der Fehler nicht mehr auf. Bei den anderen Reitern unter Performance/Berechnung gibt es das Problem nicht.
Im Fehlerprotokoll steht:

Wed Jan 05 00:04:22 CET 2022
Internal Error

org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
    at org.eclipse.core.runtime.Assert.isTrue(Assert.java:113)
    at org.eclipse.core.runtime.Assert.isTrue(Assert.java:99)
    at org.eclipse.jface.viewers.ColumnPixelData.<init>(ColumnPixelData.java:81)
    at org.eclipse.jface.viewers.ColumnPixelData.<init>(ColumnPixelData.java:51)
    at org.eclipse.jface.layout.TreeColumnLayout.updateColumnData(TreeColumnLayout.java:144)
    at org.eclipse.jface.layout.AbstractColumnLayout.lambda$0(AbstractColumnLayout.java:76)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1522)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1548)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1527)
    at org.eclipse.swt.widgets.TreeColumn.gtk_size_allocate(TreeColumn.java:425)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2426)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6147)
    at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4573)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1041)
    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:203)
    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:401)
    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(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1440)

System: Gentoo Linux
Kernel: 5.15.12
JDK: openjdk-bin-11.0.13_p8

Falls ihr die Datumsangabe im Fehlerprotokoll für korrekt haltet: Nachträglich ein frohes neues Jahr!
Ansonsten: Einen möglichst stressfreien 401. Dezember des beschissenen Corona-Jahres 2020!

Das scheint ein reines Eclipse-Problem zu sein, an dem kein PP-spezifischer Code beteiligt ist.

Ich stolpere über die gleichen assertion Fehler beim Anpassen von Spalten… würde ja darüber hinweg sehen, aber sie können Teile des Programms unbrauchbar machen (z.B. “Zahlungen” bleibt einfach leer), und damit indirekt die Datei korrumpieren :frowning:

Ohne Details aus dem Fehlerprotokoll lässt sich nicht ableiten das es der gleiche Fehler ist. Mittlerweile wurde alleine die Eclipse Engine 2x aktualisiert.

2 Likes

Hier aus dem Protokoll:

Sun Apr 09 18:51:31 BST 2023
Internal Error

org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:113)
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:99)
	at org.eclipse.jface.viewers.ColumnPixelData.<init>(ColumnPixelData.java:81)
	at org.eclipse.jface.viewers.ColumnPixelData.<init>(ColumnPixelData.java:51)
	at org.eclipse.jface.layout.TreeColumnLayout.updateColumnData(TreeColumnLayout.java:144)
	at org.eclipse.jface.layout.AbstractColumnLayout.lambda$0(AbstractColumnLayout.java:76)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5855)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1555)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1534)
	at org.eclipse.swt.widgets.TreeColumn.gtk_size_allocate(TreeColumn.java:425)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2518)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:6163)
	at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4514)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	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:203)
	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(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1440)

Nachtrag: Falls es hilft, ich benutze das aktuelle Flatpak auf Fedora 37 x86_64.

Nachtrag 2: Nach diesem Fehler zeigt mir eine der Ansichten:

assertion failed: 

org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:113)
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:99)
	at org.eclipse.jface.viewers.ColumnPixelData.<init>(ColumnPixelData.java:81)
	at org.eclipse.jface.viewers.ColumnPixelData.<init>(ColumnPixelData.java:51)
	at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper$TreeViewerPolicy.create(ShowHideColumnHelper.java:453)
	at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper.lambda$8(ShowHideColumnHelper.java:897)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper.createFromColumnConfig(ShowHideColumnHelper.java:881)
	at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper.createColumns(ShowHideColumnHelper.java:831)
	at name.abuchen.portfolio.ui.util.viewers.ShowHideColumnHelper.createColumns(ShowHideColumnHelper.java:826)
	at name.abuchen.portfolio.ui.views.PerformanceView.createCalculationItem(PerformanceView.java:379)
	at name.abuchen.portfolio.ui.views.PerformanceView.createBody(PerformanceView.java:187)
	at name.abuchen.portfolio.ui.editor.AbstractFinanceView.createViewControl(AbstractFinanceView.java:162)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.createView(PortfolioPart.java:587)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.activateView(PortfolioPart.java:543)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.activateView(PortfolioPart.java:531)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.createContainerWithViews(PortfolioPart.java:210)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.rebuildContainer(PortfolioPart.java:337)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.onLoaded(PortfolioPart.java:368)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at name.abuchen.portfolio.ui.editor.ClientInput.setClient(ClientInput.java:699)
	at name.abuchen.portfolio.ui.editor.LoadClientThread.lambda$0(LoadClientThread.java:36)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5040)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4520)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	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:203)
	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(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1440)

Nachtrag 3: Wenn ich aus der .settings-Datei alle Zeilen lösche, die dieses {"items": JSON-Gedöns haben, klappt die Anzeige wieder.