Hy,
Looking-up over the Roster code, I tkink that the “I/O operations” over Roster must waiting for Roster.rosterInitialised to become true.
I say that because sometimes when I try to retrive RosterEntries, and it happening that the Roster.rosterInitialised to be false, there is no RosterEntry after call Roster.getEntries().
So, there is a bug?