Portfoliodatei laden – „element cannot be mapped to a null key“

Version: 0.69.0 (Juni 2024)

Ich versuche eine Portfolio Datei (binär, passwortgeschützt) zu laden.
Nach Eingabe des Passworts erhalte ich eine Fehlermeldung. Gleiches Ergebnis mit der Backup-Datei. Nun schau ich in die Röhre.

Ein schneller Test mit einer neuen Datei funktioniert einwandfrei. Allerdings habe ich keine Lust alles nochmal neu einzutragen.

element cannot be mapped to a null key

java.lang.NullPointerException: element cannot be mapped to a null key
	at java.base/java.util.Objects.requireNonNull(Unknown Source)
	at java.base/java.util.stream.Collectors.lambda$groupingBy$53(Unknown Source)
	at java.base/java.util.stream.ReduceOps$3ReducingSink.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.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
	at name.abuchen.portfolio.snapshot.PortfolioSnapshot.create(PortfolioSnapshot.java:34)
	at name.abuchen.portfolio.snapshot.ClientSnapshot.create(ClientSnapshot.java:40)
	at name.abuchen.portfolio.ui.views.StatementOfAssetsViewer$Model.<init>(StatementOfAssetsViewer.java:156)
	at name.abuchen.portfolio.ui.views.StatementOfAssetsViewer.setInput(StatementOfAssetsViewer.java:1010)
	at name.abuchen.portfolio.ui.views.StatementOfAssetsView.notifyModelUpdated(StatementOfAssetsView.java:81)
	at name.abuchen.portfolio.ui.views.StatementOfAssetsView.createBody(StatementOfAssetsView.java:223)
	at name.abuchen.portfolio.ui.editor.AbstractFinanceView.createViewControl(AbstractFinanceView.java:166)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.createView(PortfolioPart.java:573)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.activateView(PortfolioPart.java:529)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.activateView(PortfolioPart.java:517)
	at java.base/java.util.Optional.ifPresent(Unknown Source)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.createContainerWithViews(PortfolioPart.java:207)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.rebuildContainer(PortfolioPart.java:323)
	at name.abuchen.portfolio.ui.editor.PortfolioPart.onLoaded(PortfolioPart.java:354)
	at java.base/java.util.ArrayList.forEach(Unknown Source)
	at name.abuchen.portfolio.ui.editor.ClientInput.setClient(ClientInput.java:678)
	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:4046)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3662)
	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 schaue ich mir an.

Die Fehlermeldung erscheint mir aber nach dem eigentlichen Laden der Datei aufzutreten. Nur kurz zu meinem Verständnis: siehst Du schon die Seitennavigation?

Ja, die Navigation sehe ich. Auf den jeweiligen UIs stehen aber die selben Fehlerlogeinträge.

Das Problem ist folgendes. Aus welchen Gründen auch immer gibt es eine Buchung auf dem Depot, die kein Wertpapier hat. Aber Buchungen auf dem Depot (Kauf, Verkauf, Einlieferung, Auslieferung, Umbuchung) müssen immer zwingend ein Wertpapier haben.

Führe mal bitte Datei → Werkzeuge → Konsistenzprüfung… aus. Da sollte Dir diese Buchung angezeigt werden. Du kannst entweder die Buchung löschen oder ein Wertpapier hinzufügen.

Irgendwo gibt es wohl noch einen Bug der solche Buchung durchrutschen lässt. Wenn Du die Buchung gefunden hast, dann würde mich interessieren wie Du die anlegt hast - Import, manuell, etc. Oder ob Dir irgendwas anderes daran aufgefallen ist. Mir ist noch nicht klar wo ich anfangen müsste zu suchen.

4 Likes

Ich habe alles manuell eingegeben. Soviel kann ich schon mal sagen.

Danke erstmal für den Hinweis. Mal sehen, ob ich was rausfinde.

Okay, also ich habe tatsächlich Verkäufe und einen Kauf drin, wo das Wertpapier nicht mehr drin steht. Anzahl, Kurs und Gebühren sind alle noch da, nur das Wertpapier selbst fehlt. Ich bin aber zu 100% sicher, dass ich es bei der Buchung angegeben habe.

Ich kann die Buchung auch nicht mehr editieren. Internal Error - NullPointerException
Nur Löschen ist möglich.

Es betrifft auch scheinbar nur eine bestimmte Aktie.

Andere Käufe der selben Aktie sind korrekt verbucht.

Nunja, dir paar Einträge mache ich neu, aber k.A. ob’s nicht nochmal passiert.