I’m using the latest version of Roster.as from the svn trunk. It appears that the handlePresence function might not process all the items in the presenceArray. It does a return when it should just be doing a break.
Here is my patch:
Index: src/org/igniterealtime/xiff/im/Roster.as
===================================================================
— src/org/igniterealtime/xiff/im/Roster.as (revision 11327)
+++ src/org/igniterealtime/xiff/im/Roster.as (working copy)
@@ -602,7 +602,7 @@
var unavailableItem:RosterItemVO = RosterItemVO.get( aPresence.from.unescaped,
false );
if ( !unavailableItem )
- return;
- break;
updateRosterItemPresence( unavailableItem, aPresence );
break;
@@ -619,7 +619,7 @@
false );
if ( !availableItem )
- return;
- break;
updateRosterItemPresence( availableItem, aPresence );
break;
roster_presence_bug.patch.zip (412 Bytes)