instruct to stop monero-wallet-rpc on error opening or creating wallet

This commit is contained in:
woodser 2023-05-02 11:13:43 -04:00
parent ea10093dad
commit 1b37a0ab9b

View File

@ -663,13 +663,14 @@ public class XmrWalletService {
MoneroRpcConnection connection = connectionsService.getConnection();
if (connection == null || !Boolean.TRUE.equals(connection.isConnected())) throw new RuntimeException("Must be connected to daemon before creating wallet");
// start monero-wallet-rpc instance
MoneroWalletRpc walletRpc = startWalletRpcInstance(port);
walletRpc.getRpcConnection().setPrintStackTrace(PRINT_STACK_TRACE);
// create wallet
MoneroWalletRpc walletRpc = null;
try {
// start monero-wallet-rpc instance
walletRpc = startWalletRpcInstance(port);
walletRpc.getRpcConnection().setPrintStackTrace(PRINT_STACK_TRACE);
// prevent wallet rpc from syncing
walletRpc.stopSyncing();
@ -682,20 +683,19 @@ public class XmrWalletService {
return walletRpc;
} catch (Exception e) {
e.printStackTrace();
stopWallet(walletRpc, config.getPath());
throw e;
if (walletRpc != null) stopWallet(walletRpc, config.getPath());
throw new IllegalStateException("Could not create wallet '" + config.getPath() + "'. Please close Haveno, stop all monero-wallet-rpc processes, and restart Haveno.");
}
}
private MoneroWalletRpc openWalletRpc(MoneroWalletConfig config, Integer port) {
MoneroWalletRpc walletRpc = null;
try {
// start monero-wallet-rpc instance
MoneroWalletRpc walletRpc = startWalletRpcInstance(port);
walletRpc = startWalletRpcInstance(port);
walletRpc.getRpcConnection().setPrintStackTrace(PRINT_STACK_TRACE);
// open wallet
try {
// prevent wallet rpc from syncing
walletRpc.stopSyncing();
@ -707,7 +707,7 @@ public class XmrWalletService {
return walletRpc;
} catch (Exception e) {
e.printStackTrace();
stopWallet(walletRpc, config.getPath());
if (walletRpc != null) stopWallet(walletRpc, config.getPath());
throw new IllegalStateException("Could not open wallet '" + config.getPath() + "'. Please close Haveno, stop all monero-wallet-rpc processes, and restart Haveno.");
}
}