From 4e108380b897434a42b6b46e1da61d3118b7cadd Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Sat, 19 Dec 2020 16:16:05 -0500 Subject: [PATCH] Check if message matches trade before checking pubKey Use stream filters instead of checks in method. Change log level from error to warn. --- .../trade/closed/CleanupMailboxMessages.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/bisq/core/trade/closed/CleanupMailboxMessages.java b/core/src/main/java/bisq/core/trade/closed/CleanupMailboxMessages.java index 5b71684ade..8795a5f0d6 100644 --- a/core/src/main/java/bisq/core/trade/closed/CleanupMailboxMessages.java +++ b/core/src/main/java/bisq/core/trade/closed/CleanupMailboxMessages.java @@ -82,23 +82,21 @@ public class CleanupMailboxMessages { private void handleDecryptedMessageWithPubKey(DecryptedMessageWithPubKey decryptedMessageWithPubKey, List trades) { - trades.forEach(trade -> handleDecryptedMessageWithPubKey(decryptedMessageWithPubKey, trade)); + trades.stream() + .filter(trade -> isMessageForTrade(decryptedMessageWithPubKey, trade)) + .filter(trade -> isPubKeyValid(decryptedMessageWithPubKey, trade)) + .forEach(trade -> removeEntryFromMailbox(decryptedMessageWithPubKey, trade)); } - private void handleDecryptedMessageWithPubKey(DecryptedMessageWithPubKey decryptedMessageWithPubKey, - Trade trade) { + private boolean isMessageForTrade(DecryptedMessageWithPubKey decryptedMessageWithPubKey, Trade trade) { NetworkEnvelope networkEnvelope = decryptedMessageWithPubKey.getNetworkEnvelope(); - if (!isPubKeyValid(decryptedMessageWithPubKey, trade)) { - return; - } - - if (networkEnvelope instanceof TradeMessage && - isMyMessage((TradeMessage) networkEnvelope, trade)) { - removeEntryFromMailbox(decryptedMessageWithPubKey, trade); - } else if (networkEnvelope instanceof AckMessage && - isMyMessage((AckMessage) networkEnvelope, trade)) { - removeEntryFromMailbox(decryptedMessageWithPubKey, trade); + if (networkEnvelope instanceof TradeMessage) { + return isMyMessage((TradeMessage) networkEnvelope, trade); + } else if (networkEnvelope instanceof AckMessage) { + return isMyMessage((AckMessage) networkEnvelope, trade); } + // Instance must be TradeMessage or AckMessage. + return false; } private void removeEntryFromMailbox(DecryptedMessageWithPubKey decryptedMessageWithPubKey, Trade trade) { @@ -124,7 +122,7 @@ public class CleanupMailboxMessages { if (peersPubKeyRing != null && !message.getSignaturePubKey().equals(peersPubKeyRing.getSignaturePubKey())) { isValid = false; - log.error("SignaturePubKey in message does not match the SignaturePubKey we have set for our trading peer."); + log.warn("SignaturePubKey in message does not match the SignaturePubKey we have set for our trading peer."); } return isValid; }