Multibit-Legacy / multibit-hd

Deprecated Bitcoin Wallet
https://multibit.org/blog/2017/07/26/multibit-shutdown.html
Other
169 stars 124 forks source link

"Special characters are not allowed" when parsing YAML #780

Open gary-rowe opened 8 years ago

gary-rowe commented 8 years ago

Error report 0f5552c:

com.fasterxml.jackson.dataformat.yaml.snakeyaml.reader.ReaderException: special characters are not allowed
    at com.fasterxml.jackson.dataformat.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.java:93) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.dataformat.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:192) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.dataformat.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:60) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.dataformat.yaml.YAMLParser.<init>(YAMLParser.java:147) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.dataformat.yaml.YAMLFactory._createParser(YAMLFactory.java:513) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.dataformat.yaml.YAMLFactory.createParser(YAMLFactory.java:326) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.dataformat.yaml.YAMLFactory.createParser(YAMLFactory.java:14) ~[multibit-hd.jar:na]
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2192) ~[multibit-hd.jar:na]
    at org.multibit.hd.core.config.Yaml.readYaml(Yaml.java:54) ~[multibit-hd.jar:na]
    at org.multibit.hd.core.managers.WalletManager.getOrCreateWalletSummary(WalletManager.java:1537) ~[multibit-hd.jar:na]
    at org.multibit.hd.core.managers.WalletManager.findWalletSummaries(WalletManager.java:1340) ~[multibit-hd.jar:na]
    at org.multibit.hd.core.managers.WalletManager.getSoftWalletSummaries(WalletManager.java:1258) ~[multibit-hd.jar:na]
    at org.multibit.hd.ui.MultiBitHD.initialiseUIViews(MultiBitHD.java:372) ~[multibit-hd.jar:na]
    at org.multibit.hd.ui.MultiBitHD$1.run(MultiBitHD.java:72) ~[multibit-hd.jar:na]
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) ~[na:1.7.0_80]
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) ~[na:1.7.0_80]
    at java.awt.EventQueue.access$300(Unknown Source) ~[na:1.7.0_80]
    at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_80]
    at java.awt.EventQueue$3.run(Unknown Source) ~[na:1.7.0_80]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_80]
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) ~[na:1.7.0_80]
    at java.awt.EventQueue.dispatchEvent(Unknown Source) ~[na:1.7.0_80]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [na:1.7.0_80]
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [na:1.7.0_80]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [na:1.7.0_80]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.7.0_80]
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.7.0_80]
    at java.awt.EventDispatchThread.run(Unknown Source) [na:1.7.0_80]

Better error handling is required rather than a crash report. Perhaps an alert indicating that the configuration has become corrupted, or just a fall back to the default with an overwrite since most users won't be able to find the configuration themselves and manually correct it.