From 477246f8f00ad95a2adade93f3a15142e51e1e9f Mon Sep 17 00:00:00 2001
From: woodser <woodser@protonmail.com>
Date: Sat, 16 Jul 2022 17:37:49 -0400
Subject: [PATCH] disconnect error handler when trade initialized

---
 .../java/bisq/core/trade/protocol/BuyerAsMakerProtocol.java    | 1 +
 .../java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java    | 3 ++-
 .../java/bisq/core/trade/protocol/SellerAsMakerProtocol.java   | 3 ++-
 .../java/bisq/core/trade/protocol/SellerAsTakerProtocol.java   | 3 ++-
 4 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/core/src/main/java/bisq/core/trade/protocol/BuyerAsMakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/BuyerAsMakerProtocol.java
index 9ec21b44..64903b53 100644
--- a/core/src/main/java/bisq/core/trade/protocol/BuyerAsMakerProtocol.java
+++ b/core/src/main/java/bisq/core/trade/protocol/BuyerAsMakerProtocol.java
@@ -237,6 +237,7 @@ public class BuyerAsMakerProtocol extends BuyerProtocol implements MakerProtocol
                             () -> {
                                 stopTimeout();
                                 unlatchTrade();
+                                this.errorMessageHandler = null;
                                 handleTaskRunnerSuccess(sender, request);
                             },
                             errorMessage -> {
diff --git a/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java
index 5e4de05d..a904386f 100644
--- a/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java
+++ b/core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java
@@ -252,8 +252,9 @@ public class BuyerAsTakerProtocol extends BuyerProtocol implements TakerProtocol
                                 ProcessPaymentAccountPayloadRequest.class)
                         .using(new TradeTaskRunner(trade,
                                 () -> {
-                                    unlatchTrade();
                                     stopTimeout();
+                                    unlatchTrade();
+                                    this.errorMessageHandler = null;
                                     handleTaskRunnerSuccess(sender, request);
                                     tradeResultHandler.handleResult(trade); // trade is initialized
                                 },
diff --git a/core/src/main/java/bisq/core/trade/protocol/SellerAsMakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/SellerAsMakerProtocol.java
index 72979c63..f28edf48 100644
--- a/core/src/main/java/bisq/core/trade/protocol/SellerAsMakerProtocol.java
+++ b/core/src/main/java/bisq/core/trade/protocol/SellerAsMakerProtocol.java
@@ -237,8 +237,9 @@ public class SellerAsMakerProtocol extends SellerProtocol implements MakerProtoc
                                 MakerRemovesOpenOffer.class)
                         .using(new TradeTaskRunner(trade,
                             () -> {
-                                unlatchTrade();
                                 stopTimeout();
+                                unlatchTrade();
+                                this.errorMessageHandler = null;
                                 handleTaskRunnerSuccess(sender, request);
                             },
                             errorMessage -> {
diff --git a/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java b/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java
index fb07ba41..6dcddd96 100644
--- a/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java
+++ b/core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java
@@ -245,8 +245,9 @@ public class SellerAsTakerProtocol extends SellerProtocol implements TakerProtoc
                                 ProcessPaymentAccountPayloadRequest.class)
                         .using(new TradeTaskRunner(trade,
                                 () -> {
-                                    unlatchTrade();
                                     stopTimeout();
+                                    unlatchTrade();
+                                    this.errorMessageHandler = null;
                                     handleTaskRunnerSuccess(sender, request);
                                     tradeResultHandler.handleResult(trade); // trade is initialized
                                 },