aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/parser/AbstractParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/parser/AbstractParser.java')
-rw-r--r--src/main/java/de/pixart/messenger/parser/AbstractParser.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/main/java/de/pixart/messenger/parser/AbstractParser.java b/src/main/java/de/pixart/messenger/parser/AbstractParser.java
index f67a00a76..3ad20783b 100644
--- a/src/main/java/de/pixart/messenger/parser/AbstractParser.java
+++ b/src/main/java/de/pixart/messenger/parser/AbstractParser.java
@@ -74,19 +74,24 @@ public abstract class AbstractParser {
}
public static MucOptions.User parseItem(Conversation conference, Element item) {
+ return parseItem(conference, item, null);
+ }
+
+ public static MucOptions.User parseItem(Conversation conference, Element item, Jid fullJid) {
final String local = conference.getJid().getLocalpart();
final String domain = conference.getJid().getDomainpart();
String affiliation = item.getAttribute("affiliation");
String role = item.getAttribute("role");
String nick = item.getAttribute("nick");
- Jid fullJid;
- try {
- fullJid = nick != null ? Jid.fromParts(local, domain, nick) : null;
- } catch (InvalidJidException e) {
- fullJid = null;
+ if (nick != null && fullJid == null) {
+ try {
+ fullJid = Jid.fromParts(local, domain, nick);
+ } catch (InvalidJidException e) {
+ fullJid = null;
+ }
}
Jid realJid = item.getAttributeAsJid("jid");
- MucOptions.User user = new MucOptions.User(conference.getMucOptions(), nick == null ? null : fullJid);
+ MucOptions.User user = new MucOptions.User(conference.getMucOptions(), fullJid);
user.setRealJid(realJid);
user.setAffiliation(affiliation);
user.setRole(role);