From aa3920da051b8c41281bed45de2ddb8a3a2bd999 Mon Sep 17 00:00:00 2001 From: Matt Tucker Date: Sat, 23 Aug 2003 23:09:18 +0000 Subject: [PATCH] Fixes for roster presence notification. git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@2060 b35dd754-fafc-0310-a699-88a17e54d16e --- source/org/jivesoftware/smack/Roster.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/org/jivesoftware/smack/Roster.java b/source/org/jivesoftware/smack/Roster.java index 12f04cef7..998ccb425 100644 --- a/source/org/jivesoftware/smack/Roster.java +++ b/source/org/jivesoftware/smack/Roster.java @@ -408,8 +408,13 @@ public class Roster { if (presence.getType() == Presence.Type.AVAILABLE) { presenceMap.put(key, presence); // If the user is in the roster, fire an event. - if (entries.contains(key)) { - fireRosterPresenceEvent(key); + synchronized (entries) { + for (Iterator i=entries.iterator(); i.hasNext(); ) { + RosterEntry entry = (RosterEntry)i.next(); + if (entry.getUser().equals(key)) { + fireRosterPresenceEvent(key); + } + } } } // If an "unavailable" packet, remove any entries in the presence map.