synchronize access to get closed trade by id

This commit is contained in:
woodser 2025-02-16 20:59:36 -05:00
parent c3b7289943
commit e4fa5f520d
3 changed files with 4 additions and 6 deletions

View file

@ -47,7 +47,6 @@ import haveno.core.support.messages.ChatMessage;
import haveno.core.support.traderchat.TradeChatSession; import haveno.core.support.traderchat.TradeChatSession;
import haveno.core.support.traderchat.TraderChatManager; import haveno.core.support.traderchat.TraderChatManager;
import haveno.core.trade.ClosedTradableManager; import haveno.core.trade.ClosedTradableManager;
import haveno.core.trade.Tradable;
import haveno.core.trade.Trade; import haveno.core.trade.Trade;
import haveno.core.trade.TradeManager; import haveno.core.trade.TradeManager;
import haveno.core.trade.TradeUtil; import haveno.core.trade.TradeUtil;
@ -223,8 +222,7 @@ class CoreTradesService {
} }
private Optional<Trade> getClosedTrade(String tradeId) { private Optional<Trade> getClosedTrade(String tradeId) {
Optional<Tradable> tradable = closedTradableManager.getTradeById(tradeId); return closedTradableManager.getTradeById(tradeId);
return tradable.filter((t) -> t instanceof Trade).map(value -> (Trade) value);
} }
List<Trade> getTrades() { List<Trade> getTrades() {

View file

@ -150,9 +150,9 @@ public class ClosedTradableManager implements PersistedDataHost {
} }
} }
public Optional<Tradable> getTradeById(String id) { public Optional<Trade> getTradeById(String id) {
synchronized (closedTradables) { 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();
} }
} }

View file

@ -1315,7 +1315,7 @@ public class TradeManager implements PersistedDataHost, DecryptedDirectMessageLi
} }
public Optional<Trade> getClosedTrade(String tradeId) { public Optional<Trade> getClosedTrade(String tradeId) {
return closedTradableManager.getClosedTrades().stream().filter(e -> e.getId().equals(tradeId)).findFirst(); return closedTradableManager.getTradeById(tradeId);
} }
public Optional<Trade> getFailedTrade(String tradeId) { public Optional<Trade> getFailedTrade(String tradeId) {