Por favor, confirme que este código XMPP não é threadsafe
-
06-09-2019 - |
Pergunta
Estou lendo o código fonte para a api Bater eo método XMPPConnection # desconexão esta aparência:
public void disconnect(Presence unavailablePresence) {
// If not connected, ignore this request.
if (packetReader == null || packetWriter == null) {
return;
}
shutdown(unavailablePresence);
if (roster != null) {
roster.cleanup();
roster = null;
}
wasAuthenticated = false;
packetWriter.cleanup();
packetWriter = null;
packetReader.cleanup();
packetReader = null;
}
Em meu cenário, eu sou armazenar um XMPPConnection vivo dentro de uma classe chamada Session. Um segmento separado da execução tentará fechar a minha instância de XMPPConnection chamando Session # shutdown () . A meu ver, eu vou ter que dizer cooperativamente Session para fechar a XMPPConnection por adquirir um mutex ou algo assim. Correto?
Solução
Parece que é um conhecido bug .
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow