diff --git a/core/src/main/java/io/bitsquare/trade/TradeManager.java b/core/src/main/java/io/bitsquare/trade/TradeManager.java index c76bc65251..88ae4e4d11 100644 --- a/core/src/main/java/io/bitsquare/trade/TradeManager.java +++ b/core/src/main/java/io/bitsquare/trade/TradeManager.java @@ -61,6 +61,8 @@ import org.spongycastle.crypto.params.KeyParameter; import javax.inject.Inject; import javax.inject.Named; import java.io.File; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import java.util.stream.Stream; @@ -173,17 +175,25 @@ public class TradeManager { private void initPendingTrades() { Log.traceCall(); + List toAdd = new ArrayList<>(); + List toRemove = new ArrayList<>(); for (Trade trade : trades) { trade.setStorage(tradableListStorage); if (trade.isDepositFeePaid()) { initTrade(trade, trade.getProcessModel().getUseSavingsWallet(), trade.getProcessModel().getFundsNeededForTrade()); trade.updateDepositTxFromWallet(); } else if (trade.isTakerFeePaid()) { - addTradeToFailedTrades(trade); + toAdd.add(trade); } else { - removePreparedTrade(trade); + toRemove.add(trade); } } + for (Trade trade : toAdd) { + addTradeToFailedTrades(trade); + } + for (Trade trade : toRemove) { + removePreparedTrade(trade); + } pendingTradesInitialized.set(true); }