Add param for using mailbox if msg send failes

This commit is contained in:
Manfred Karrer 2015-05-20 00:38:52 +02:00
parent f971a787ba
commit 5cc6c5c552
12 changed files with 31 additions and 5 deletions

View File

@ -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);

View File

@ -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

View File

@ -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);
}
}
}
);

View File

@ -268,6 +268,7 @@ public class OpenOfferManager {
messageService.sendEncryptedMessage(sender,
message.getPubKeyRing(),
offerAvailabilityResponse,
false,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -42,6 +42,7 @@ public class SendOfferAvailabilityRequest extends Task<OfferAvailabilityModel> {
model.messageService.sendEncryptedMessage(model.getPeer(),
model.offer.getPubKeyRing(),
message,
false,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -44,6 +44,7 @@ public class SendDepositTxPublishedMessage extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
tradeMessage,
true,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -46,6 +46,7 @@ public class SendFiatTransferStartedMessage extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
tradeMessage,
true,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -55,6 +55,7 @@ public class SendPayDepositRequest extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
tradeMessage,
false,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -43,6 +43,7 @@ public class SendPayoutTxFinalizedMessage extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
tradeMessage,
true,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -53,6 +53,7 @@ public class SendDepositTxInputsRequest extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
message,
false,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -49,6 +49,7 @@ public class SendFinalizePayoutTxRequest extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
message,
true,
new SendMessageListener() {
@Override
public void handleResult() {

View File

@ -53,6 +53,7 @@ public class SendPublishDepositTxRequest extends TradeTask {
trade.getTradingPeer(),
processModel.tradingPeer.getPubKeyRing(),
tradeMessage,
false,
new SendMessageListener() {
@Override
public void handleResult() {