From e4fa5f520d7319e5fd57f32857507fee51d2be93 Mon Sep 17 00:00:00 2001 From: woodser Date: Sun, 16 Feb 2025 20:59:36 -0500 Subject: [PATCH] synchronize access to get closed trade by id --- core/src/main/java/haveno/core/api/CoreTradesService.java | 4 +--- .../main/java/haveno/core/trade/ClosedTradableManager.java | 4 ++-- core/src/main/java/haveno/core/trade/TradeManager.java | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/haveno/core/api/CoreTradesService.java b/core/src/main/java/haveno/core/api/CoreTradesService.java index 14f10b4f..9854167c 100644 --- a/core/src/main/java/haveno/core/api/CoreTradesService.java +++ b/core/src/main/java/haveno/core/api/CoreTradesService.java @@ -47,7 +47,6 @@ import haveno.core.support.messages.ChatMessage; import haveno.core.support.traderchat.TradeChatSession; import haveno.core.support.traderchat.TraderChatManager; import haveno.core.trade.ClosedTradableManager; -import haveno.core.trade.Tradable; import haveno.core.trade.Trade; import haveno.core.trade.TradeManager; import haveno.core.trade.TradeUtil; @@ -223,8 +222,7 @@ class CoreTradesService { } private Optional getClosedTrade(String tradeId) { - Optional tradable = closedTradableManager.getTradeById(tradeId); - return tradable.filter((t) -> t instanceof Trade).map(value -> (Trade) value); + return closedTradableManager.getTradeById(tradeId); } List getTrades() { diff --git a/core/src/main/java/haveno/core/trade/ClosedTradableManager.java b/core/src/main/java/haveno/core/trade/ClosedTradableManager.java index 0a48fc51..cac8e9e2 100644 --- a/core/src/main/java/haveno/core/trade/ClosedTradableManager.java +++ b/core/src/main/java/haveno/core/trade/ClosedTradableManager.java @@ -150,9 +150,9 @@ public class ClosedTradableManager implements PersistedDataHost { } } - public Optional getTradeById(String id) { + public Optional getTradeById(String id) { synchronized (closedTradables) { - return closedTradables.stream().filter(e -> e instanceof Trade && e.getId().equals(id)).findFirst(); + return getClosedTrades().stream().filter(e -> e.getId().equals(id)).findFirst(); } } diff --git a/core/src/main/java/haveno/core/trade/TradeManager.java b/core/src/main/java/haveno/core/trade/TradeManager.java index a3cca849..caabdb38 100644 --- a/core/src/main/java/haveno/core/trade/TradeManager.java +++ b/core/src/main/java/haveno/core/trade/TradeManager.java @@ -1315,7 +1315,7 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi } public Optional getClosedTrade(String tradeId) { - return closedTradableManager.getClosedTrades().stream().filter(e -> e.getId().equals(tradeId)).findFirst(); + return closedTradableManager.getTradeById(tradeId); } public Optional getFailedTrade(String tradeId) {