diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/parser/AbstractParser.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/parser/AbstractParser.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/parser/AbstractParser.java b/src/main/java/de/pixart/messenger/parser/AbstractParser.java index 50204cb7b..e0a26c18d 100644 --- a/src/main/java/de/pixart/messenger/parser/AbstractParser.java +++ b/src/main/java/de/pixart/messenger/parser/AbstractParser.java @@ -10,6 +10,7 @@ import de.pixart.messenger.entities.Conversation; import de.pixart.messenger.entities.MucOptions; import de.pixart.messenger.services.XmppConnectionService; import de.pixart.messenger.xml.Element; +import de.pixart.messenger.xmpp.InvalidJid; import de.pixart.messenger.xmpp.stanzas.AbstractStanza; import rocks.xmpp.addr.Jid; @@ -36,7 +37,7 @@ public abstract class AbstractParser { } for (Element child : element.getChildren()) { if ("delay".equals(child.getName()) && "urn:xmpp:delay".equals(child.getNamespace())) { - final Jid f = to == null ? null : child.getAttributeAsJid("from"); + final Jid f = to == null ? null : InvalidJid.getNullForInvalid(child.getAttributeAsJid("from")); if (f != null && (to.asBareJid().equals(f) || to.getDomain().equals(f.toString()))) { continue; } @@ -114,7 +115,9 @@ public abstract class AbstractParser { } Jid realJid = item.getAttributeAsJid("jid"); MucOptions.User user = new MucOptions.User(conference.getMucOptions(), fullJid); - user.setRealJid(realJid); + if (InvalidJid.isValid(realJid)) { + user.setRealJid(realJid); + } user.setAffiliation(affiliation); user.setRole(role); return user; |