ich wollte gerade die neue App testen und dazu mein Portfolio als binary speichern. Ich erhalte jedoch nur eine Error-Modal ohne einen Hinweis was das Problem ist. Ich nutze die aktuelle Version:
ich habe das Log gefunden. Leider wird nicht mit ausgegeben, bei welcher Transaction das Problem besteht:
Wed Apr 17 22:58:21 CEST 2024
UnsupportedOperationException
java.lang.UnsupportedOperationException
at name.abuchen.portfolio.model.BuySellEntry.getCrossOwner(BuySellEntry.java:194)
at name.abuchen.portfolio.model.ProtobufWriter.addTransaction(ProtobufWriter.java:976)
at name.abuchen.portfolio.model.ProtobufWriter.lambda$13(ProtobufWriter.java:952)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at name.abuchen.portfolio.model.ProtobufWriter.saveTransactions(ProtobufWriter.java:952)
at name.abuchen.portfolio.model.ProtobufWriter.save(ProtobufWriter.java:778)
at name.abuchen.portfolio.model.ClientFactory$PlainWriterZIP.save(ClientFactory.java:216)
at name.abuchen.portfolio.model.ClientFactory.writeFile(ClientFactory.java:641)
at name.abuchen.portfolio.model.ClientFactory.saveAs(ClientFactory.java:593)
at name.abuchen.portfolio.ui.editor.ClientInput.lambda$4(ClientInput.java:261)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at name.abuchen.portfolio.ui.editor.ClientInput.doSaveAs(ClientInput.java:258)
at name.abuchen.portfolio.ui.editor.PortfolioPart.doSaveAs(PortfolioPart.java:423)
at name.abuchen.portfolio.ui.handlers.SaveAsFileHandler.execute(SaveAsFileHandler.java:77)
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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:298)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:232)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:174)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:165)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4645)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4412)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3988)
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)
In der XML ist mir eine Stelle aufgefallen. In einer account-transaction gibt es einen großen Block von weiteren portfolio-transactions. Was hat es mit dieser Verschachtelung auf sich? Ist das normal?
Ja, das ist normal. Ein Objekt (hier das Portfolio) wird serialisiert, sobald es das erste Mal auftaucht.
Nein, Zeile 194, nicht Zeile 183. Offenbar ist irgendetwas an den Buchungen nicht konsistent. Wir hatten neulich schon einmal einen ähnlichen Fall, wo eine Buchung ein Zwitter aus Kauf und Einlieferung war.
FWIW habe ich gerade einen PR auf Github laufen, bei dem - sollte er gemerged werden - im vorliegenden Fall die Transaktion mit ins Log ausgegeben werden würde, die zu der Exception geführt hat. Sollte Merge und Release in nicht allzu weiter Zukunft liegen, könntest du das vielleicht abwarten und dann mit einem aktualisiertem Logausschnitt nochmal vorbeikommen.
Meine Änderungen haben ihren Weg ins Release gefunden. Wenn dein Problem weiterhin besteht, sollte man jetzt zumindest eine Idee davon bekommen, welche Transaktion den Fehler bewirkt.