From 142f78c1350eba600b74fe3a886e91daddf0f52e Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Mon, 19 Jan 2015 19:26:19 +0100 Subject: [PATCH] Rename Roster.getPresenceMapKey() to getMapKey() since this method is not only used to determine the key for the presence map, but also for the 'entries' map. The logic is in both cases the same: If somehow an entry with an resourcepart went into the roster (RFC 6121 does not explicity forbid JIDs with an resourcepart in the roster), then use the full JID as key, otherwise use the bare JID. See also SMACK-19. --- .../java/org/jivesoftware/smack/Roster.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/Roster.java b/smack-core/src/main/java/org/jivesoftware/smack/Roster.java index 13ec034e0..da3396afe 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/Roster.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/Roster.java @@ -448,7 +448,7 @@ public class Roster { if (user == null) { return null; } - String key = getPresenceMapKey(user); + String key = getMapKey(user); return entries.get(key); } @@ -522,7 +522,7 @@ public class Roster { * or if no presence information is available.. */ public Presence getPresence(String user) { - String key = getPresenceMapKey(XmppStringUtils.parseBareJid(user)); + String key = getMapKey(XmppStringUtils.parseBareJid(user)); Map userPresences = presenceMap.get(key); if (userPresences == null) { Presence presence = new Presence(Presence.Type.unavailable); @@ -589,7 +589,7 @@ public class Roster { * or if no presence information is available. */ public Presence getPresenceResource(String userWithResource) { - String key = getPresenceMapKey(userWithResource); + String key = getMapKey(userWithResource); String resource = XmppStringUtils.parseResource(userWithResource); Map userPresences = presenceMap.get(key); if (userPresences == null) { @@ -619,7 +619,7 @@ public class Roster { * presence information is available. */ public List getAllPresences(String bareJid) { - Map userPresences = presenceMap.get(getPresenceMapKey(bareJid)); + Map userPresences = presenceMap.get(getMapKey(bareJid)); List res; if (userPresences == null) { // Create an unavailable presence if none was found @@ -663,7 +663,7 @@ public class Roster { */ public List getPresences(String user) { List res; - String key = getPresenceMapKey(user); + String key = getMapKey(user); Map userPresences = presenceMap.get(key); if (userPresences == null) { Presence presence = new Presence(Presence.Type.unavailable); @@ -724,7 +724,7 @@ public class Roster { } /** - * Returns the key to use in the presenceMap for a fully qualified XMPP ID. + * Returns the key to use in the presenceMap and entries Map for a fully qualified XMPP ID. * The roster can contain any valid address format such us "domain/resource", * "user@domain" or "user@domain/resource". If the roster contains an entry * associated with the fully qualified XMPP ID then use the fully qualified XMPP @@ -734,16 +734,16 @@ public class Roster { * * @param user the bare or fully qualified XMPP ID, e.g. jdoe@example.com or * jdoe@example.com/Work. - * @return the key to use in the presenceMap for the fully qualified XMPP ID. + * @return the key to use in the presenceMap and entries Map for the fully qualified XMPP ID. */ - private String getPresenceMapKey(String user) { + private String getMapKey(String user) { if (user == null) { return null; } - String key = user; - if (!entries.containsKey(user)) { - key = XmppStringUtils.parseBareJid(user); + if (entries.containsKey(user)) { + return user; } + String key = XmppStringUtils.parseBareJid(user); return key.toLowerCase(Locale.US); } @@ -975,7 +975,7 @@ public class Roster { public void processPacket(Packet packet) throws NotConnectedException { Presence presence = (Presence) packet; String from = presence.getFrom(); - String key = getPresenceMapKey(from); + String key = getMapKey(from); Map userPresences; Presence response = null;