Skip to content

Commit dcb6f2e

Browse files
committed
save dispute closed message for reprocessing immediately
1 parent 1b2650d commit dcb6f2e

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

core/src/main/java/haveno/core/support/dispute/arbitration/ArbitrationManager.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -146,18 +146,15 @@ public void onSupportMessage(SupportMessage message) {
146146
if (canProcessMessage(message)) {
147147
log.info("Received {} from {} with tradeId {} and uid {}",
148148
message.getClass().getSimpleName(), message.getSenderNodeAddress(), message.getTradeId(), message.getUid());
149-
150-
ThreadUtils.execute(() -> {
151-
if (message instanceof DisputeOpenedMessage) {
152-
handle((DisputeOpenedMessage) message);
153-
} else if (message instanceof ChatMessage) {
154-
handle((ChatMessage) message);
155-
} else if (message instanceof DisputeClosedMessage) {
156-
handle((DisputeClosedMessage) message);
157-
} else {
158-
log.warn("Unsupported message at dispatchMessage. message={}", message);
159-
}
160-
}, message.getTradeId());
149+
if (message instanceof DisputeOpenedMessage) {
150+
handle((DisputeOpenedMessage) message);
151+
} else if (message instanceof ChatMessage) {
152+
handle((ChatMessage) message);
153+
} else if (message instanceof DisputeClosedMessage) {
154+
handle((DisputeClosedMessage) message);
155+
} else {
156+
log.warn("Unsupported message at dispatchMessage. message={}", message);
157+
}
161158
}
162159
}
163160

@@ -272,6 +269,10 @@ private void handle(DisputeClosedMessage disputeClosedMessage, boolean reprocess
272269
return;
273270
}
274271

272+
// save dispute closed message for reprocessing
273+
trade.getArbitrator().setDisputeClosedMessage(disputeClosedMessage);
274+
persistNow(null);
275+
275276
// try to process dispute closed message
276277
ThreadUtils.execute(() -> {
277278
ChatMessage chatMessage = null;
@@ -310,10 +311,6 @@ private void handle(DisputeClosedMessage disputeClosedMessage, boolean reprocess
310311
if (dispute != null) DisputeSummaryVerification.verifySignature(summaryText, dispute.getAgentPubKeyRing()); // use dispute's arbitrator pub key ring
311312
else DisputeSummaryVerification.verifySignature(summaryText, arbitratorManager); // verify using registered arbitrator (will fail if arbitrator is unregistered)
312313

313-
// save dispute closed message for reprocessing
314-
trade.getArbitrator().setDisputeClosedMessage(disputeClosedMessage);
315-
requestPersistence(trade);
316-
317314
// verify arbitrator does not receive DisputeClosedMessage
318315
if (keyRing.getPubKeyRing().equals(dispute.getAgentPubKeyRing())) {
319316
log.error("Arbitrator received disputeResultMessage. That should never happen.");

0 commit comments

Comments
 (0)