add protection to recursive refresh call

This commit is contained in:
Craig Raw 2022-03-03 09:44:47 +02:00
parent e594007af1
commit 416fc83b4d

View file

@ -247,12 +247,12 @@ public class SparrowDataSource extends WalletResponseDataSource {
@Subscribe
public void walletHistoryChanged(WalletHistoryChangedEvent event) {
refreshWallet(event.getWalletId(), event.getWallet());
refreshWallet(event.getWalletId(), event.getWallet(), 0);
}
@Subscribe
public void walletAddressesChanged(WalletAddressesChangedEvent event) {
refreshWallet(event.getWalletId(), event.getWallet());
refreshWallet(event.getWalletId(), event.getWallet(), 0);
}
@Subscribe
@ -264,13 +264,14 @@ public class SparrowDataSource extends WalletResponseDataSource {
}
}
private void refreshWallet(String walletId, Wallet wallet) {
private void refreshWallet(String walletId, Wallet wallet, int i) {
try {
// match <prefix>:master, :Premix, :Postmix
if(walletId.startsWith(walletIdentifierPrefix) && (wallet.isWhirlpoolMasterWallet() || wallet.isWhirlpoolChildWallet())) {
//Workaround to avoid refreshing the wallet after it has been opened, but before it has been started
Whirlpool whirlpool = AppServices.getWhirlpoolServices().getWhirlpool(wallet);
if(whirlpool != null && whirlpool.isStarting()) {
Platform.runLater(() -> refreshWallet(walletId, wallet));
if(whirlpool != null && whirlpool.isStarting() && i < 1000) {
Platform.runLater(() -> refreshWallet(walletId, wallet, i+1));
} else {
refresh();
}