muc message corrections only compare bare jid true counterpart

Daniel Gultsch created

during live messages we only store the bare real jid; on muc catch up we might get the full jid
for that reason we only compare bare jids

Change summary

src/main/java/eu/siacs/conversations/parser/MessageParser.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -543,7 +543,8 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
                     final boolean fingerprintsMatch = replacedMessage.getFingerprint() == null
                             || replacedMessage.getFingerprint().equals(message.getFingerprint());
                     final boolean trueCountersMatch = replacedMessage.getTrueCounterpart() != null
-                            && replacedMessage.getTrueCounterpart().equals(message.getTrueCounterpart());
+                            && message.getTrueCounterpart() != null
+                            && replacedMessage.getTrueCounterpart().asBareJid().equals(message.getTrueCounterpart().asBareJid());
                     final boolean mucUserMatches = query == null && replacedMessage.sameMucUser(message); //can not be checked when using mam
                     final boolean duplicate = conversation.hasDuplicateMessage(message);
                     if (fingerprintsMatch && (trueCountersMatch || !conversationMultiMode || mucUserMatches) && !duplicate) {