Problem beim Starten: „XML kann nicht geparst werden“

Hallo zusammen, wollte nur melden, dass ich ähnlich Probleme mit PP habe und ebenfalls die Portfoliodaten über synology Drive synchronisiere. Allerdings nur in Windoof-Umgebungen und geöffnet werden sie nur von einem Rechner aus. Hier meine Fehlermeldung. Ich versuche mich jetzt an den backups und werde die PP-Daten aus der NAS-Synchro nehmen.

Zwischenablage01

VG, Christoph

Hallo miteinander.

Seit eben kann ich meine Portfolio Performance nicht öffnen.
Im NormalFall startet die Portfolio performance sofort in meiner Datei, ohne Startseite.
Beim Starten meiner Datei kommt die Meldung:
XML kann nicht geparst werden.
Debugging Information.

Kann mir bitte jemand helfen?

Gruß Dana

Hallo zusammen,

bei mir - plötzlich - gleiches Problem. Die 3 Tage alte Backup Datei lässt sich öffnen. Die aktuelle mit TimeDateParseException nicht mehr.

Debug Info ist etwas dünn:

Thu Oct 20 10:26:30 CEST 2022
XML kann nicht geparst werden: 
---- Debugging information ----
cause-exception     : java.time.format.DateTimeParseException
cause-message       : Text '2006-

Die Datei ist 30.243kb groß…

Gruß
Mala

Jop, die ist wohl kaputt. Nimm das Backup u.a. dafür ist es da.

Zur Info
ich bekam heute den Fehler “Internal Error: Java heap space”
Ich wollte dann Portfolio Performance neu starten bekam dann aber den Fehler “XML kann nicht geparsed werden”
die Autosave Datei hat denselben fehler
die Backup Datei funktioniert und ich kann damit weiter arbeiten
Wenn ich es schaffe, hänge ich noch die Fehlermeldungen und das error log bei …
Gruss
Thomas

image

image

Beim Speichern?

Hier gibt es Informationen, wie du PP mehr Speicher zuweisen kannst:

Bei mir hat auch mal wieder der Fehlerteufel zugeschlagen…
Vielleicht sollte ich häufiger im Jahr in PP gucken, sodass meine Version dementsprechend auch häufiger Updates bekommen würde, das würde wahrscheinlich zur Eingrenzung des Fehlers besser helfen :see_no_evil:.

Der Fehler, den ich beim Öffnen von (manchen, nicht allen!) PP-Dateien bekomme, ist dieser:
“XML kann nicht geparst werden” - “No converter available”

Fehlerlog:

!SESSION 2022-12-23 21:56:50.534 -----------------------------------------------
eclipse.buildId=unknown
java.version=17.0.1
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.equinox.app 4 2 2022-12-23 21:57:04.823
!MESSAGE Beim Aufrufen des Codes vom Plug-in sind Fehler aufgetreten: "org.eclipse.equinox.app".
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/swt/accessibility/AccessibleObject
	at org.eclipse.equinox.launcher.JNIBridge._takedown_splash(Native Method)
	at org.eclipse.equinox.launcher.JNIBridge.takeDownSplash(JNIBridge.java:173)
	at org.eclipse.equinox.launcher.Main.takeDownSplash(Main.java:2182)
	at org.eclipse.equinox.launcher.Main$SplashHandler.run(Main.java:122)
	at org.eclipse.core.runtime.internal.adaptor.DefaultStartupMonitor.applicationRunning(DefaultStartupMonitor.java:71)
	at org.eclipse.equinox.internal.app.EclipseAppHandle$1.run(EclipseAppHandle.java:279)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.applicationRunning(EclipseAppHandle.java:267)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1092)
	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: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: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)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.accessibility.AccessibleObject
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	... 26 more

!ENTRY name.abuchen.portfolio.ui 4 0 2022-12-23 21:57:08.131
!MESSAGE XML kann nicht geparst werden: No converter available
---- Debugging information ----
message             : No converter available
type                : java.util.Arrays$ArrayList
converter           : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
message[1]          : Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @41570f16
class               : name.abuchen.portfolio.model.Taxonomy
required-type       : name.abuchen.portfolio.model.Taxonomy
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /client/taxonomies/taxonomy/dimensions
line number         : 42079
class[1]            : java.util.ArrayList
required-type[1]    : java.util.ArrayList
converter-type[1]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2]            : name.abuchen.portfolio.model.Client
required-type[2]    : name.abuchen.portfolio.model.Client
version             : not available
-------------------------------
!STACK 0
java.io.IOException: XML kann nicht geparst werden: No converter available
---- Debugging information ----
message             : No converter available
type                : java.util.Arrays$ArrayList
converter           : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
message[1]          : Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @41570f16
class               : name.abuchen.portfolio.model.Taxonomy
required-type       : name.abuchen.portfolio.model.Taxonomy
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /client/taxonomies/taxonomy/dimensions
line number         : 42079
class[1]            : java.util.ArrayList
required-type[1]    : java.util.ArrayList
converter-type[1]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2]            : name.abuchen.portfolio.model.Client
required-type[2]    : name.abuchen.portfolio.model.Client
version             : not available
-------------------------------
	at name.abuchen.portfolio.model.ClientFactory$XmlSerialization.load(ClientFactory.java:130)
	at name.abuchen.portfolio.model.ClientFactory$PlainWriter.load(ClientFactory.java:156)
	at name.abuchen.portfolio.model.ClientFactory.load(ClientFactory.java:533)
	at name.abuchen.portfolio.ui.editor.LoadClientThread.run(LoadClientThread.java:34)
Caused by: com.thoughtworks.xstream.converters.ConversionException: No converter available
---- Debugging information ----
message             : No converter available
type                : java.util.Arrays$ArrayList
converter           : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
message[1]          : Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @41570f16
class               : name.abuchen.portfolio.model.Taxonomy
required-type       : name.abuchen.portfolio.model.Taxonomy
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /client/taxonomies/taxonomy/dimensions
line number         : 42079
class[1]            : java.util.ArrayList
required-type[1]    : java.util.ArrayList
converter-type[1]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2]            : name.abuchen.portfolio.model.Client
required-type[2]    : name.abuchen.portfolio.model.Client
version             : not available
-------------------------------
	at com.thoughtworks.xstream.core.DefaultConverterLookup.lookupConverterForType(DefaultConverterLookup.java:88)
	at com.thoughtworks.xstream.XStream$1.lookupConverterForType(XStream.java:478)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:58)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:499)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:425)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readBareItem(AbstractCollectionConverter.java:132)
	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:117)
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:99)
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:92)
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:86)
	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:81)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:499)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:425)
	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:72)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1421)
	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1399)
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1284)
	at name.abuchen.portfolio.model.ClientFactory$XmlSerialization.load(ClientFactory.java:118)
	... 3 more

Das Seltsame ist, dass ich ein paar meiner Dateien problemlos öffnen kann und ein paar nicht. Das spricht für mich eigentlich gegen einen nicht verfügbaren Converter. Ich habe mir auch mal die XML-Datei einer der Problem-Dateien angeschaut - die sieht zumindest nicht offensichtlich kaputt aus (sofern man das bei knapp 50k Zeilen überblicken kann).
Was mir noch aufgefallen ist (das betrifft aber u.a. auch eine Datei, die problemlos geöffnet wird, weshalb ich das nicht als Fehlerquelle für dieses Problem hier deute), ist, dass einige Ticker-Symbole scheinbar inzwischen zu nicht mehr existierenden Links führen (404 Error Code) - gut möglich. Den Teil habe ich aus dem Fehlerlog oben raus gelassen - falls jemand das benötigt, bitte Bescheid geben.

Hat jemand eine Idee, woran das Problem liegt oder wie ich es beheben kann? Ansonsten werde ich meine Backups nutzen, auch wenn ich da dann nochmal Einiges neu importieren muss (ich habe leider eben festgestellt, dass die neueren Backups dasselbe Problem haben :frowning: - man sollte die auch zwischendurch mal testen…).
Ich bin auch für Ideen dankbar, die das Problem in Zukunft vermeiden (abgesehen davon, häufiger Backups zu testen - das habe ich jetzt immerhin schon gelernt :wink: ).

LG, Cathy

Ja:

java.version=17.0.1

1 Like

Ach stimmt, da war ja was :see_no_evil:
Ist Java 11 immer noch die benötigte Version oder hat sich daran etwas geändert?

Auf jeden Fall danke für die schnelle Antwort @chirlu , aber weißt du zufällig auch, warum das Programm dann trotzdem mit manchen Dateien klarkommt, mit anderen nicht? Die Dateien sind bei mir eigentlich alle sehr ähnich aufgebaut.

Nicht genau, aber offenbar kann XStream manche Datenstrukturen ohne Reflection einlesen und andere nicht. Je nachdem, welche Funktionen in einer Datei genutzt werden, kann das Problem dann auftreten oder nicht. Hier ist XStream über etwas in einer Klassifizierung gestolpert.

Java 11 ist immer noch richtig.

1 Like

Das Problem ist, dass in einigen XML Dateien Strukturen gibt, die mit Java 17 nicht mehr eingelesen werden können. Insbesondere ist mir das interne statisch Array aus java.util.Arrays bei den “Dimensionen” vor ein paar Jahren ins XML “reingerutscht”.

Das habe ich auch im August 2022 (!) gefixt. Und existierende Dateien sollten - sobald einmal geöffnet - auch bereinigt werden.

Wenn ich dann nächstes Jahr auf Java17 umstelle, habe ich gehofft in der freien Wildbahn nicht mehr auf solche Dateien zu treffen. Jetzt bin ich aber bei Deiner Datei hellhörig geworden. Hast Du die schon lange nicht mehr geöffnet? Interessehalber: welche Dateiversion steht da im XML? (sollte ganz oben im XML zu finden sein)

Ja:

1 Like

Hi,

nach dem Update auf die neuste Version bekomme ich beim Laden der XML.ZIP folgenden Fehler:

(sowohl bei den autosave als auch backup Versionen):

Mon Feb 13 19:16:16 CET 2023
XML kann nicht geparst werden:
---- Debugging information ----
cause-exception : java.time.format.DateTimeParseException
cause-message : Text ‘2010-08-0M0’ could not be parsed at index 8
class : name.abuchen.portfolio.model.SecurityPrice
required-type : name.abuchen.portfolio.model.SecurityPrice
converter-type : name.abuchen.portfolio.util.XStreamSecurityPriceConverter
path : /client/securities/security[7]/prices/price[2677]
line number : 14013

Bin da jetzt etwas panisch, weil es alle meine Versionen betrifft…

Hat noch jemand das Problem?

Gruß
Mala

Jetzt wollte ich die ZIPs mal entpacken → sowohl 7zip als auch andere melden Fehler.

Sind die Archive kein standard ZIP?

Doch, Standard ZIP. Hast du es mit dem Backup schon probiert?

Die Dateien sind offensichtlich beschädigt. Das wurde öfter bei Netzlaufwerken beobachtet (s.o.), liegen die Dateien bei dir auch auf so einem?

Auch die backup-after-open? Wenn ja, brauchst du ein älteres Backup.

Daten liegen lokal - sämtliche Versionen lassen sich nicht mehr öffnen.

(andere Portfolio XMLs (nicht zip) von anderen Depots funktionieren). Nur die Zips sind defekt - leider alle. Da bei mir Portfolioperformance mehrere Wochen am Stück läuft, vermute ich, dass der Fehler während der Laufzeit auftauchte.

Als Featurerequest schlage ich daher einen “Konsistenzcheck” der Speicherdatei vor.

Ich habe von dem Problem schon mehrfach gelesen. Für mich gerade ein absoluter Gau… ich schaue jetzt nochmal in meiner SMB-Versionsliste nach ob ich noch ältere Backups finde. Vor allem verstehe ich nicht, warum ich die ZIP nicht sauber entpacken kann → Portfolioperformance mir aber einen XML Fehler nennt. Das ist widersprüchlich - es sei denn PP entpackt nicht, sondern streamt den ZIP bis zum Fehlerpunkt.

Ich konnte jetzt einen Teil der Datei über ZIP-Repair von Winrar lesen → Datei Version “56”

Der Punkt an dem PP beim lesen aussteigt sieht so aus:

<price t="2010-08-02" v="450100000"/>
        <price t="2010-08-03" v="463250000"/>
        <price t="2010-08-04" v="484700000"/>
        <price t="2010-08-0M0"/>
.... [35000 Zeilen]
        <price t="2010-08-0M0"/>
        <price t="<-0M0"/>
     <prit="2010-08-0M0"/>
        <price t="2010-0 <price<price t="2010-08-0M0"/>
        <price t="2010-08e t="20102010-0 <price<price t="2010-08-0M0"/>

Dann folgt Datensalat. Aber dass das Tag <price t="2010-08-0M0"/> so häufig kommt ist schon falsch.

Edit:

Habe jetzt meine NAS Backup Versionen durchforstet.

Seit dem 7.2. (das noch vor meinem PP-Update) sind sämtliche Autosave und normalen Speicherdateien der ZIP Speicherung korrupt. Irgendwas scheint da mit der Speicherfunktion nicht in Ordnung zu sein.

D.h. weder die Autosave Funktion hat täglich saubere ZIP geschrieben, noch wurde beim Beenden eine saubere Datei produziert.

1 Like

PP macht auch eine Kopie der Datei, die es zuletzt öffnen konnte. Diese Datei solltest Du auch weiterhin öffnen können. Da wird nix mit XML einlesen / schreiben gemacht, sondern da wird auf OS level eine Datei kopiert.

Ich weiß nicht ob man den XML Salat reparieren kann - wenn Du mir die Datei schickst, kann ich es probieren.

Ansonsten ist mir leider völlig unklar wie diese Fehlersituation zustanden kommen kann. Ich konnte das noch nie reproduzieren. Wenn Deine Backups aber seit dem 7.2. kaputt sind, geht das vielleicht bei Dir. Kann ich mir das mal per Zoom/TeamViewer o.ä. anschauen? Dann schick mal eine Email an portfolio dot performance dot help at gmail dot com

2 Likes

Hallo @AndreasB

habe einen konrekten Verdacht:

Wie oben beschrieben sichere ich meine lokalen Dateien auf einem NAS (Synology). Sobald der Sync Service (synology drive client) aktiv ist, kann ich den Fehler reproduzieren. Scheinbar bekommt PP keinen Lock auf die Datei bzw. der Sync beginnt vorm Beenden, so dass der Output Stream nicht vollständig ist. Mit der Folge, dass beim nächsten Öffnen die Datei korrupt ist.

Weiss noch nicht ob das lokal gelöst bekomme - vielleicht scripte ich mir ein PP Start Skript

Idee:

  • PP XML Verzeichnis wird nicht mehr gesynct
    Start Skript
  1. die vorhandenen XMLS in ein anderes Verzeichnis kopieren → von dort werden sie gesynct
  2. PP Starten

Suboptimal irgendwie aber lösbar.

LG
Mala

2 Likes

Ja.

Kompressionsverfahren beruhen darauf, häufige Zeichenfolgen zusammenzufassen. <price t="2010-08-0 kommt so etwa achtmal nacheinander vor, und das wahrscheinlich mehrmals, wenn du mehrere Wertpapiere mit Kursen von Anfang August 2010 hast. Wenn die gekürzte Version einmal falsch ist, hast du also ganz logisch Fehler an mehreren Stellen.

1 Like