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 5b71684ade9..8795a5f0d6d 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 @@ private void cleanupMailboxMessages(List trades) { 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 @@ private boolean isPubKeyValid(DecryptedMessageWithPubKey message, Trade trade) { 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; }