Allora, sto realizzando un semplice client jabber in java usando la libreria SMACK ma ho trovato un problemino...

Il codice è questo:

Codice PHP:
        connection = new XMPPConnection(data.getServer());
        
connection.connect();
                
        
connection.login(data.getUsername(), data.getPassword());
        
        
        
roster connection.getRoster(); // ottengo la lista contatti 
        
        
System.out.println("numero utenti: " roster.getEntryCount());
             
   
// itero i singoli utenti
        
Iterator<RosterEntryiter roster.getEntries().iterator();
        while (
iter.hasNext())
        {
            
RosterEntry entry = (RosterEntryiter.next();
            
            
String user entry.getUser();
            
Presence presence roster.getPresence(user);
            
            if (
presence.isAvailable())
            {
                
System.out.println(user " e' online");
            }
            else
            {
                
                
System.out.println(user " e' offline");
            }
        } 
Dopo il login ottengo la lista contatti e controllo uno per uno lo stato. Il problema è che la lista la ottengo subito mentre lo stato arriva dopo!

Mi spiego meglio: con questo codice i contatti jabber li vedo TUTTI OFFLINE (anche se non è vero). Se pero' metto 4 o 5 secondi di sleep subito dopo "roster = connection.getRoster();" i contatti online vengono visti correttamente.

Ora. Come posso fare per "bloccare" il programma mentre aspetto che tutti gli stati dei contatti vengano rilevati correttamente?
Nella libreria smack non trovo nulla

Grazie 1000