Leere Fehlermeldung beim Speichern im Binärformat

Hallo,

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:

Version: 0.68.3 (March 2024)
Platform: macosx, x86_64
Java: 17.0.5+8-LTS, Azul Systems, Inc.

Screenshot 2024-04-17 at 21.56.09

Hat jemand einen Tipp wie ich den Fehler debuggen bzw. umgehen kann?

Steht im Fehlerprotokoll mehr?

Hallo @chirlu,

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)

Das scheint dieses throw zu sein: portfolio/name.abuchen.portfolio/src/name/abuchen/portfolio/model/BuySellEntry.java at master · portfolio-performance/portfolio · GitHub

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?

        <account-transaction>
          <uuid>8544d214-9780-4170-b248-d95043d996ad</uuid>
          <date>xxx</date>
          <currencyCode>EUR</currencyCode>
          <amount>xxx</amount>
          <security reference="../../../../../securities/security[22]"/>
          <crossEntry class="buysell">
            <portfolio>
              <uuid>0dcaf0bd-2216-4728-a8b5-cbbefa59000f</uuid>
              <name>Securities</name>
              <isRetired>false</isRetired>
              <referenceAccount reference="../../../../.."/>
              <transactions>
                <portfolio-transaction>
                  <uuid>1865cb50-6279-43f1-91fb-714f7317210a</uuid>
                  <date>xxx</date>
                  <currencyCode>EUR</currencyCode>
                  <amount>xxx</amount>
                  <security reference="../../../../../../../../../securities/security[2]"/>
                  <shares>xxx</shares>
                  <source>xxx</source>
                  <units>
                    <unit type="FEE">
                      <amount currency="EUR" amount="xxx"/>
                    </unit>
                  </units>
                  <updatedAt>xxx</updatedAt>
                  <type>DELIVERY_INBOUND</type>
                </portfolio-transaction>

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.

Danke Chirlu. Hast du eine Idee wie ich das Problem beheben kann?

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.

2 Likes

@Steven_Gonzalez

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.

3 Likes

hallo, ich habe das Problem auch/immer noch… was mache ich falsch, was kann ich tun, um im Binärformat zu speichern…

Hast du im Fehlerprotokoll nachgesehen, ob da etwas ersichtlich ist?

Im Fehlerprotokoll gibt es keine Hinweise hierauf, gar kein Vermerk zu dem Zeitpunkt

Kannst du bitte die letzten Einträge des Fehlerprotokoll über das Menü hier posten (nachdem der Fehler aufgetreten ist)?

Menü → Hilfe → Fehlerprotokoll

der Fehler besteht schon länger, die letzte korrekte Speicherung binär liegt einige Wochen zurück, hatte vermutet, daß es mit dem nächsten update vielleicht wieder klappt…die letzten Fehlermeldungen von heute:

23.08.25, 14:51 [PortfolioLog] 404 Not Found → https://query1.finance.yahoo.com/v8/finance/chart/RKC7.F?lang=en-US&region=US&corsDomain=finance.yahoo.com

23.08.25, 14:51 Evergreen Sustainable World Bonds E: 404 Not Found → https://api.divvydiary.com/symbols/DE000A3DQ2X7

23.08.25, 14:51 Swisscanto (LU) Equity Fund Sustainable: 404 Not Found → https://api.divvydiary.com/symbols/LU0136171559

Gibt Datei/Werkzeuge/Konsistenzprüfung etwas aus?

…”keine Probleme gefunden”…