mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 01:41:11 +01:00
3a6b0ce9d8
Prior to this commit, the way that the appDataDir and its subdirectories were created was a haphazard process that worked but in a fragile and non-obvious way. When Config was instantiated, an attempt to call btcNetworkDir.mkdir() was made, but if appDataDir did not already exist, this call would always fail because mkdir() does not create parent directories. This problem was never detected, though, because the KeyStorage class happened to call mkdirs() on its 'keys' subdirectory, which, because of the plural mkdirs() call ended up creating the whole ${appDataDir}/${btcNetworkDir}/keys hierarchy. Other btcNetworkDir subdirectories such as tor/ and db/ then benefited from the hierarchy already existing when they attempted to call mkdir() for their own dirs. So the whole arrangement worked only because KeyStorage happened to make a mkdirs() call and because that code in KeyStorage happened to get invoked before the code that managed the other subdirectories. This change ensures that appDataDir and all its subdirectories are created up front, such that they are guaranteed to exist by the time they are injected into Storage, KeyStorage, WalletsSetup and TorSetup. The hierarchy is unchanged, structured as it always has been: ${appDataDir} └── btc_mainnet ├── db ├── keys ├── wallet └── tor Note that the tor/ subdirectory actually gets deleted and re-created within the TorSetup infrastructure regardless of whether the directory exists beforehand. |
||
---|---|---|
.. | ||
src |