From 5cc6c5c55252e3d61c3c2c5b433aa9d76a732b2f Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 20 May 2015 00:38:52 +0200 Subject: [PATCH] Add param for using mailbox if msg send failes --- .../java/io/bitsquare/p2p/MessageService.java | 2 +- .../p2p/tomp2p/BootstrappedPeerBuilder.java | 5 ++++- .../p2p/tomp2p/TomP2PMessageService.java | 20 ++++++++++++++++--- .../trade/offer/OpenOfferManager.java | 1 + .../tasks/SendOfferAvailabilityRequest.java | 1 + .../buyer/SendDepositTxPublishedMessage.java | 1 + .../buyer/SendFiatTransferStartedMessage.java | 1 + .../tasks/buyer/SendPayDepositRequest.java | 1 + .../buyer/SendPayoutTxFinalizedMessage.java | 1 + .../seller/SendDepositTxInputsRequest.java | 1 + .../seller/SendFinalizePayoutTxRequest.java | 1 + .../seller/SendPublishDepositTxRequest.java | 1 + 12 files changed, 31 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/io/bitsquare/p2p/MessageService.java b/core/src/main/java/io/bitsquare/p2p/MessageService.java index 679770ec36..0ebaeb65aa 100644 --- a/core/src/main/java/io/bitsquare/p2p/MessageService.java +++ b/core/src/main/java/io/bitsquare/p2p/MessageService.java @@ -23,7 +23,7 @@ import io.bitsquare.p2p.listener.SendMessageListener; public interface MessageService extends P2PService { - void sendEncryptedMessage(Peer peer, PubKeyRing pubKeyRing, Message message, SendMessageListener listener); + void sendEncryptedMessage(Peer peer, PubKeyRing pubKeyRing, Message message, boolean useMailboxIfUnreachable, SendMessageListener listener); void addMessageHandler(MessageHandler listener); diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java index 1667c86ca1..3d607f6df6 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/BootstrappedPeerBuilder.java @@ -200,7 +200,10 @@ public class BootstrappedPeerBuilder { peer.peerBean().peerMap().addPeerMapChangeListener(new PeerMapChangeListener() { @Override public void peerInserted(PeerAddress peerAddress, boolean verified) { - log.debug("Peer inserted: peerAddress=" + peerAddress + ", verified=" + verified); + if (verified) + log.debug("Peer inserted: peerAddress=" + peerAddress + ", verified=" + verified); + else + log.trace("Peer inserted: peerAddress=" + peerAddress + ", verified=" + verified); } @Override diff --git a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java index 4ccf9c10bf..65a92234d0 100644 --- a/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java +++ b/core/src/main/java/io/bitsquare/p2p/tomp2p/TomP2PMessageService.java @@ -72,7 +72,7 @@ public class TomP2PMessageService extends TomP2PService implements MessageServic } @Override - public void sendEncryptedMessage(Peer peer, PubKeyRing pubKeyRing, Message message, SendMessageListener listener) { + public void sendEncryptedMessage(Peer peer, PubKeyRing pubKeyRing, Message message, boolean useMailboxIfUnreachable, SendMessageListener listener) { assert pubKeyRing != null; log.debug("sendMessage called"); @@ -97,7 +97,14 @@ public class TomP2PMessageService extends TomP2PService implements MessageServic else { log.info("sendMessage failed. We will try to send the message to the mailbox. Fault reason: " + futureDirect.failedReason()); - sendMailboxMessage(pubKeyRing, (SealedAndSignedMessage) encryptedMessage, listener); + if (useMailboxIfUnreachable) { + sendMailboxMessage(pubKeyRing, (SealedAndSignedMessage) encryptedMessage, listener); + } + else { + openRequestsDown(); + log.error("Send message was not successful"); + executor.execute(listener::handleFault); + } } } @@ -105,7 +112,14 @@ public class TomP2PMessageService extends TomP2PService implements MessageServic public void exceptionCaught(Throwable t) throws Exception { log.info("sendMessage failed with exception. We will try to send the message to the mailbox. Exception: " + t.getMessage()); - sendMailboxMessage(pubKeyRing, (SealedAndSignedMessage) encryptedMessage, listener); + if (useMailboxIfUnreachable) { + sendMailboxMessage(pubKeyRing, (SealedAndSignedMessage) encryptedMessage, listener); + } + else { + openRequestsDown(); + log.error("Send message was not successful"); + executor.execute(listener::handleFault); + } } } ); diff --git a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java index b38c44ae35..a93f4986af 100644 --- a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java +++ b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java @@ -268,6 +268,7 @@ public class OpenOfferManager { messageService.sendEncryptedMessage(sender, message.getPubKeyRing(), offerAvailabilityResponse, + false, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/availability/tasks/SendOfferAvailabilityRequest.java b/core/src/main/java/io/bitsquare/trade/protocol/availability/tasks/SendOfferAvailabilityRequest.java index 90a4cf2d55..824d5888bd 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/availability/tasks/SendOfferAvailabilityRequest.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/availability/tasks/SendOfferAvailabilityRequest.java @@ -42,6 +42,7 @@ public class SendOfferAvailabilityRequest extends Task { model.messageService.sendEncryptedMessage(model.getPeer(), model.offer.getPubKeyRing(), message, + false, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendDepositTxPublishedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendDepositTxPublishedMessage.java index 9437fe7d3e..d8e2fe41bb 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendDepositTxPublishedMessage.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendDepositTxPublishedMessage.java @@ -44,6 +44,7 @@ public class SendDepositTxPublishedMessage extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), tradeMessage, + true, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java index 7bf2c90263..3e7981b40b 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendFiatTransferStartedMessage.java @@ -46,6 +46,7 @@ public class SendFiatTransferStartedMessage extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), tradeMessage, + true, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayDepositRequest.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayDepositRequest.java index 8785a48185..0f7d81e705 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayDepositRequest.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayDepositRequest.java @@ -55,6 +55,7 @@ public class SendPayDepositRequest extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), tradeMessage, + false, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java index 4bb4b2ae03..aacab5c791 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/buyer/SendPayoutTxFinalizedMessage.java @@ -43,6 +43,7 @@ public class SendPayoutTxFinalizedMessage extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), tradeMessage, + true, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendDepositTxInputsRequest.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendDepositTxInputsRequest.java index 40429c7fa0..59ae6ce2b8 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendDepositTxInputsRequest.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendDepositTxInputsRequest.java @@ -53,6 +53,7 @@ public class SendDepositTxInputsRequest extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), message, + false, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java index 739ffba544..9176940033 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendFinalizePayoutTxRequest.java @@ -49,6 +49,7 @@ public class SendFinalizePayoutTxRequest extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), message, + true, new SendMessageListener() { @Override public void handleResult() { diff --git a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendPublishDepositTxRequest.java b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendPublishDepositTxRequest.java index 3a0c80f5c0..860fb26210 100644 --- a/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendPublishDepositTxRequest.java +++ b/core/src/main/java/io/bitsquare/trade/protocol/trade/tasks/seller/SendPublishDepositTxRequest.java @@ -53,6 +53,7 @@ public class SendPublishDepositTxRequest extends TradeTask { trade.getTradingPeer(), processModel.tradingPeer.getPubKeyRing(), tradeMessage, + false, new SendMessageListener() { @Override public void handleResult() {