Ich habe hier 1.8.141 auf Win7/64 und wollte schon nach Beispieldaten fragen.
Aber falls es an einer alten Version liegt, nützt das da auch nichts.
Ich würde gerne mal einen Branch mit einem entsprechenden Fix zusammenstellen.
Hast Du eine Idee, wie man da eine Testversion für ausgewählte User machen könnte?
Oder halt nur zum selber laden, erstmal ohne automatisches Update - damit es nicht bei allen brennt.
Wenn ich das richtig sehe, hat @Waldschrat genau die Version genutzt.
In den Einstellungen kann man beliebige URLs eintragen. Du könntest eine Update Site auch irgendwo anders hosten. Das Problem ist aber immer - das Update tut nur, wenn die Version hochgezählt wird. Man verbrennt dabei Versionen.
Ich würde einfach irgendwo eine Version zum Download anbieten.
Aber ehrlich gesagt: lohnt sich das? Das Compression Level können wir auch wieder ändern ohne die “try - catch” umzustellen.
Ah ok, dann also eher eine normale Version.
Oder ich packe zum Testen einfach das Ergebnis des Builds zusammen und stelle es hier bereit.
Ja, der Compression Level wäre auch nicht das Problem.
Ich finde die Überarbeitung dann schon sauberer - ich will den Code gerne besser zurücklassen, als ich ihn vorgefunden habe
@Waldschrat: könntest Du eine Testversion, die ich bereitstelle, gegen Deine Datei testen?
Oder falls Du eine Testdatei hast ohne allzu viele persönliche Daten, kannst Du sie mir auch zur Verfügung stellen.
Ok, ich habe diesen Pull Request erstellt mit den Änderungen, um nur die BadPaddingException abzufangen und die anderen IOExceptions zuzulassen:
Ich habe auch Portfolio Performance für Windows 64 gebaut und hier abgelegt.
Es reicht, die ZIP-Datei zu entpacken und die PortfolioPerformance.exe zu starten.
@Jens_Boettcher, @Waldschrat und @dorg2009 : könnt Ihr es bitte mit dieser Fassung noch einmal testen und das Ergebnis hier posten? Vielen Dank schon einmal
Die Version 0.27.8 funktioniert wieder wie gewohnt, mit der gibt es keine Probleme bei mir. Mit der ZIP-Variante erscheint sofort nach dem Doppelklick auf die EXE folgendes:
Exit Code = 13 tritt eigentlich immer dann auf, wenn Bit Version von JDK/JRE nicht zu der von PortfolioPerformance passen.
Du hast die 64bit Version von PP, ist aber unter c:\ProgramData\Oracle\Java\ auch die 64bit version installiert? Irgendwie scheint der Launcher da ein anderes JRE zu nehmen als in Deiner anderen Installation.
(So als Nebenbemerkung: mit Java 9 kann man reduzierte Laufzeitumgebungen bauen. Ich überlege schwer ob ich nicht Java direkt mit einpacken soll. Das ist einfach zu frickelich das passende JDK/JRE zu finden. )
Nein, ich habe eine 32-Bit Version von PP installiert, da meine Java-Version ebenfalls x86 ist und ich das für sinnvoller hielt. Ich habe lediglich ein 64-Bit Betriebssystem. Als ich den Test gemacht habe, habe ich nicht weiter darüber nachgedacht das es evtl. zu Inkompatibilitäten zwischen den Versionen kommen kann (war auch schon 2:00 Uhr )
Das hatte ich mir schon gedacht, nachdem ich nur die 64-bit-Variante zur Verfügung gestellt hatte
Ich habe jetzt die aktuellen Änderungen aus dem Pull Request noch einmal gebaut:
Und zwar als 32-bit und 64-bit - eins davon müsste dann ja bei Dir funktionieren.
Falls Du das nochmal testen kannst @Jens_Boettcher, wäre das super. Ich würde das schon gerne sauber lösen aber möchte auch vermeiden, dass es dann bei vielen Nutzern nicht richtig funktioniert.
Die kommen - aus welchen Gründen auch immer - ab und an mal. Das passiert im Rahmen des Checks nach Aktualisierungen. Keine Ahnung warum. Leider komme ich an die Code Stelle auch nicht ran - einfach ignorieren.
Tue Jan 26 10:33:59 CET 2021
XML kann nicht geparst werden: : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
---- Debugging information ----
message : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
cause-exception : com.thoughtworks.xstream.io.StreamException
cause-message : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
class : java.util.ArrayList
required-type : java.util.ArrayList
converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter
path : /client/securities/security[27]/prices
line number : 61980
class[1] : name.abuchen.portfolio.model.Security
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : name.abuchen.portfolio.model.Client
version : not available
-------------------------------
java.io.IOException: XML kann nicht geparst werden: : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
---- Debugging information ----
message : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
cause-exception : com.thoughtworks.xstream.io.StreamException
cause-message : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
class : java.util.ArrayList
required-type : java.util.ArrayList
converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter
path : /client/securities/security[27]/prices
line number : 61980
class[1] : name.abuchen.portfolio.model.Security
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : name.abuchen.portfolio.model.Client
version : not available
-------------------------------
at name.abuchen.portfolio.model.ClientFactory$XmlSerialization.load(ClientFactory.java:114)
at name.abuchen.portfolio.model.ClientFactory$Decryptor.load(ClientFactory.java:272)
at name.abuchen.portfolio.model.ClientFactory.load(ClientFactory.java:413)
at name.abuchen.portfolio.ui.editor.LoadClientThread.run(LoadClientThread.java:34)
Caused by: com.thoughtworks.xstream.converters.ConversionException: : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
---- Debugging information ----
message : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
cause-exception : com.thoughtworks.xstream.io.StreamException
cause-message : : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
class : java.util.ArrayList
required-type : java.util.ArrayList
converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter
path : /client/securities/security[27]/prices
line number : 61980
class[1] : name.abuchen.portfolio.model.Security
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : name.abuchen.portfolio.model.Client
version : not available
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:480)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:412)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:263)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:480)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:412)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:263)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1206)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1190)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1061)
at name.abuchen.portfolio.model.ClientFactory$XmlSerialization.load(ClientFactory.java:102)
... 3 more
Caused by: com.thoughtworks.xstream.io.StreamException: : javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:126)
at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148)
at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:135)
at com.thoughtworks.xstream.io.xml.AbstractPullReader.hasMoreChildren(AbstractPullReader.java:87)
at com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:89)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
... 33 more
Caused by: java.io.IOException: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
at java.base/javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:148)
at java.base/javax.crypto.CipherInputStream.read(CipherInputStream.java:261)
at java.base/java.io.FilterInputStream.read(FilterInputStream.java:132)
at java.base/java.io.PushbackInputStream.read(PushbackInputStream.java:182)
at java.base/java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:242)
at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.base/java.util.zip.ZipInputStream.read(ZipInputStream.java:196)
at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:297)
at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
at java.base/java.io.InputStreamReader.read(InputStreamReader.java:181)
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2992)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1786)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:109)
... 41 more
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
at java.base/com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:977)
at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1058)
at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:943)
at java.base/com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:491)
at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2152)
at java.base/javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:145)
... 57 more