java.lang.IllegalArgumentException nach mehreren Aktiensplits und sehr niedrigen Kursen

Nach anfänglicher Begeisterung über das neue widget hat sich bei mir ein Fehler eingschlichen. Das Ergebnis wird nicht mehr angezeigt, ein Neuaufsetzen des widgets bringt die Fehlermeldung hervor: “java.lang.IllegalArgumentException”
Welche Version von Java könnte helfen, die Fehlermeldung zu beseitigen? Ein Zurücksetzten der GUI hat keinen Errfolg gebracht.
Ich danke im Voraus für eine Antwort.

Nachtrag nach 9 Std.: Ich habe innerhalb des gleichen Ordners ein zweites Depot zu Testzwecken aufgebaut und festgestellt, dass in diesem Depot die Anzahl der Trades problemlos angezeigt werden. Demnach kann es m.E. nicht an der Java-Unterstützung liegen. Der Unterschied zwischen den Depots liegt allerdings in der Größe und Komplexität. Das Hauptdepot umfasst ca. 400 trades seit 2011, das Testdepot lediglich 20 trades. Warum kann dieser Fehler im Hauptdepot auftreten?

Nachtrag nach 16 Std.: Fehler gefunden und beseitigt. Ich hatte im Depot den Wert BB Biotech angelegt mit ca. 10 Buchungen (Zukäufe, Dividenden) und einem Kurssplit in der Vergangenheit. Da ich mit den historischen Kursen unzufrieden war, habe ich verschiedene Kursanbieter ausprobiert, jeweils unter Aufbau einer neuen Kurshistorie. Den Kurssplit habe ich daher dreimal eingegeben und dieses führte zu falschen Splitergebnissen (Stückangaben erschienen danach im Dezimalbereich). Nach Löschungen aller Buchungen für diese Aktie konnte ich problemlos die Anzahl des Trade-Widgets wieder in den Auswertungen reaktivieren. Die nun anstehende Neueingabe der ca. 10 individuellen Buchungen für das Wertpapier ist nun nur eine Sache von 10 Minuten.
Mein Fazit: Ändere keine Kurshistorie bei den Wertpapieren mit einem bereits vollzogenen Kurssplit. Ich hoffe, diese Erfahrung hilft anderen PP-Fans.

3 Likes

Du hast den Aktiensplit noch mal erfasst um die historischen Kurse noch mal anzupassen, richtig?

Wenn Du auf der zweiten Seite das Häkchen bei “Buchungen umrechnen” entfernst, dann werden die Buchungen nicht noch mal angefasst.

44

Aber ich gebe zu: die Aktiensplit sind noch unglücklich implementiert, weil sie die historischen Buchungen dauerhaft verändern. Und das kann man dann nicht mehr rückgängig machen.

1 Like

Hallo Andreas,
recht herzlichen Dank für diesen Hinweis. Ja, ich habe den Aktiensplit insgesamt dreimal durchgeführt und das Ergebnis auch nicht direkt überprüft, sonst wären mir die unrealistischen Stückzahlen eher aufgefallen. Ich habe die vorhandene Bearbeitungsoption glatt übersehen. Das Schöne an PP ist, dass man immer noch dazu lernt und neue Entdeckungen macht. Man muss sich daher ausreichend lange mit den Möglichkeiten beschäftigen und vieles ausprobieren. Wie heißt es so schön: „Übung macht den Meister“ :smile: crazy_face:

Manfred

1 Like

Hallo,
ich habe leider den gleichen Fehler beim Widget “Anzahl Trades”. Allerdings habe ich nie einen Aktiensplit durchgeführt. Gibt es noch weitere Ideen woran der Fehler liegen kann? Vielen Dank für die Mühe und die besten Grüße
Tim

Hallo Tim,
nein, mir fällt sonst keine weitere Fehlerquelle dazu ein. Insofern kann ich Dir leider keinen konkreten Tip dazu geben. Lediglich empfehle ich sich das Fehlerprotokoll anzusehen. Häufig findet man dort Hinweise auf die Fehlerquelle. :unamused:

Hast Du dazu einen Stack Trace? Der Fehler “illegal argument exception” kann auf Grund verschiedener illegaler Argumente entstehen.

Hallo Andreas,
leider habe ich keinen stack trace. Nach der Korrektur des Akteinsplits ist der Fehler bei mir nicht mehr aufgetreten. Sorry, dass ich leider nicht weiter helfen kann.

Hallo zusammen, ich erhalte den selben Fehler und bin bei der Fehlersuche leider nicht so erfolgreich wie mmu23. Mir wäre nicht bewusst, dass ich je ein Aktiensplit gehabt hätte, mein Deopt umfasst etwa 50 Trades. Hättet ihr noch einen Tipp was noch problematisch ist für das Widget? Anbei mein Stacktrace:

Sun Jul 14 16:17:06 CEST 2019


java.lang.IllegalArgumentException

	at name.abuchen.portfolio.snapshot.trades.TradeCollector.createNewTradeFromSell(TradeCollector.java:110)

	at name.abuchen.portfolio.snapshot.trades.TradeCollector.collect(TradeCollector.java:64)

	at name.abuchen.portfolio.ui.views.dashboard.TradesWidget.lambda$2(TradesWidget.java:107)

	at java.util.ArrayList.forEach(Unknown Source)

	at java.util.Collections$UnmodifiableCollection.forEach(Unknown Source)

	at name.abuchen.portfolio.ui.views.dashboard.TradesWidget.lambda$1(TradesWidget.java:107)

	at name.abuchen.portfolio.ui.views.dashboard.DashboardView$1.run(DashboardView.java:593)

	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)



Ich muss da noch besser werden mit den Fehlermeldungen… :grimacing:

Die Fehlermeldung tritt auf wenn PP einen Verkauf findet, aber keinen passenden Kaufbuchung (um den Trade abzuschliessen).

Ich kann Dir aber so nicht sagen um welchen Wertpapier es sich handelt.

Mit der nächsten Version baue ich da bessere Fehlermeldungen ein. Wenn Du mir die XML Datei an portfolio dot performance dot help at gmail dot com schickst, kann ich versuchen den problematischen Trade zu finden.

Hallo Andreas,

ok mit dem Hinweis konnte ich die Position finden, war zum Glück eine der ersten :slight_smile:
Man sortiert nach Wertpapiername und dann war bei einem Trade das Datum falsch und somit Verkauf vor dem Kauf. Widget funktioniert jetzt.

Merci!