@@ -469,8 +469,10 @@ public void handleDepositResponse(DepositResponse response, NodeAddress sender)
469
469
470
470
public void handle (DepositsConfirmedMessage response , NodeAddress sender ) {
471
471
System .out .println (getClass ().getSimpleName () + ".handle(DepositsConfirmedMessage)" );
472
+ if (!trade .isInitialized () || trade .isShutDown ()) return ;
472
473
ThreadUtils .execute (() -> {
473
474
synchronized (trade ) {
475
+ if (!trade .isInitialized () || trade .isShutDown ()) return ;
474
476
latchTrade ();
475
477
this .errorMessageHandler = null ;
476
478
expect (new Condition (trade )
@@ -496,6 +498,7 @@ public void handle(DepositsConfirmedMessage response, NodeAddress sender) {
496
498
// received by seller and arbitrator
497
499
protected void handle (PaymentSentMessage message , NodeAddress peer ) {
498
500
System .out .println (getClass ().getSimpleName () + ".handle(PaymentSentMessage)" );
501
+ if (!trade .isInitialized () || trade .isShutDown ()) return ;
499
502
if (!(trade instanceof SellerTrade || trade instanceof ArbitratorTrade )) {
500
503
log .warn ("Ignoring PaymentSentMessage since not seller or arbitrator" );
501
504
return ;
@@ -507,6 +510,7 @@ protected void handle(PaymentSentMessage message, NodeAddress peer) {
507
510
// TODO A better fix would be to add a listener for the wallet sync state and process
508
511
// the mailbox msg once wallet is ready and trade state set.
509
512
synchronized (trade ) {
513
+ if (!trade .isInitialized () || trade .isShutDown ()) return ;
510
514
if (trade .getPhase ().ordinal () >= Trade .Phase .PAYMENT_SENT .ordinal ()) {
511
515
log .warn ("Received another PaymentSentMessage which was already processed, ACKing" );
512
516
handleTaskRunnerSuccess (peer , message );
@@ -548,12 +552,14 @@ protected void handle(PaymentReceivedMessage message, NodeAddress peer) {
548
552
549
553
private void handle (PaymentReceivedMessage message , NodeAddress peer , boolean reprocessOnError ) {
550
554
System .out .println (getClass ().getSimpleName () + ".handle(PaymentReceivedMessage)" );
555
+ if (!trade .isInitialized () || trade .isShutDown ()) return ;
551
556
ThreadUtils .execute (() -> {
552
557
if (!(trade instanceof BuyerTrade || trade instanceof ArbitratorTrade )) {
553
558
log .warn ("Ignoring PaymentReceivedMessage since not buyer or arbitrator" );
554
559
return ;
555
560
}
556
561
synchronized (trade ) {
562
+ if (!trade .isInitialized () || trade .isShutDown ()) return ;
557
563
latchTrade ();
558
564
Validator .checkTradeId (processModel .getOfferId (), message );
559
565
processModel .setTradeMessage (message );
0 commit comments