From 580e5b672cc4b9238391294ba15a592d29d96f7c Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Wed, 5 Mar 2025 08:39:31 -0500 Subject: [PATCH] add lock to submit tx to pool for verification and sync on shut down --- .../java/haveno/core/xmr/wallet/XmrWalletService.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java b/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java index 95669e9e..045897ed 100644 --- a/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java +++ b/core/src/main/java/haveno/core/xmr/wallet/XmrWalletService.java @@ -68,7 +68,6 @@ import java.util.stream.Stream; import javafx.beans.property.LongProperty; import javafx.beans.property.ReadOnlyDoubleProperty; import javafx.beans.value.ChangeListener; -import lombok.Getter; import monero.common.MoneroError; import monero.common.MoneroRpcConnection; import monero.common.MoneroRpcError; @@ -145,8 +144,7 @@ public class XmrWalletService extends XmrWalletBase { private TradeManager tradeManager; private ExecutorService syncWalletThreadPool = Executors.newFixedThreadPool(10); // TODO: adjust based on connection type - @Getter - public final Object lock = new Object(); + private final Object lock = new Object(); private TaskLooper pollLooper; private boolean pollInProgress; private Long pollPeriodMs; @@ -740,7 +738,7 @@ public class XmrWalletService extends XmrWalletBase { MoneroDaemonRpc daemon = getDaemon(); MoneroWallet wallet = getWallet(); MoneroTx tx = null; - synchronized (daemon) { + synchronized (lock) { try { // verify tx not submitted to pool @@ -926,7 +924,7 @@ public class XmrWalletService extends XmrWalletBase { } // shut down threads - synchronized (getLock()) { + synchronized (lock) { List shutDownThreads = new ArrayList<>(); shutDownThreads.add(() -> ThreadUtils.shutDown(THREAD_ID)); ThreadUtils.awaitTasks(shutDownThreads);