set payment sent message state after sending message

This commit is contained in:
woodser 2024-02-01 13:00:37 -05:00
parent fabec9d396
commit c908294250
4 changed files with 26 additions and 18 deletions

View file

@ -486,7 +486,7 @@ public abstract class TradeProtocol implements DecryptedDirectMessageListener, D
synchronized (trade) {
if (!trade.isInitialized() || trade.isShutDown()) return;
if (trade.getPhase().ordinal() >= Trade.Phase.PAYMENT_SENT.ordinal()) {
log.warn("Received another PaymentSentMessage which was already processed, ACKing");
log.warn("Received another PaymentSentMessage which was already processed for {} {}, ACKing", trade.getClass().getSimpleName(), trade.getId());
handleTaskRunnerSuccess(peer, message);
return;
}

View file

@ -18,6 +18,7 @@
package haveno.core.trade.protocol.tasks;
import haveno.common.taskrunner.TaskRunner;
import haveno.core.network.MessageState;
import haveno.core.trade.Trade;
import haveno.core.trade.messages.TradeMessage;
import haveno.core.trade.protocol.TradePeer;
@ -36,6 +37,30 @@ public class BuyerSendPaymentSentMessageToSeller extends BuyerSendPaymentSentMes
protected TradePeer getReceiver() {
return trade.getSeller();
}
@Override
protected void setStateSent() {
trade.getProcessModel().setPaymentSentMessageState(MessageState.SENT);
super.setStateSent();
}
@Override
protected void setStateArrived() {
trade.getProcessModel().setPaymentSentMessageState(MessageState.ARRIVED);
super.setStateArrived();
}
@Override
protected void setStateStoredInMailbox() {
trade.getProcessModel().setPaymentSentMessageState(MessageState.STORED_IN_MAILBOX);
super.setStateStoredInMailbox();
}
@Override
protected void setStateFault() {
trade.getProcessModel().setPaymentSentMessageState(MessageState.FAILED);
super.setStateFault();
}
// continue execution on fault so payment sent message is sent to arbitrator
@Override