Пожалуйста, подтвердите, что этот XMPP-код не является потокобезопасным
-
06-09-2019 - |
Вопрос
Я читаю исходный код Smack api и метода XMPPConnection#отключиться выглядит примерно так:
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;
}
В моем сценарии я сохраняю действующее XMPPConnection внутри класса, называемого Session .Отдельный поток выполнения попытается закрыть мой экземпляр XMPPConnection, вызвав Session#выключение ().Как я вижу, мне придется совместно сообщить сеансу закрыть XMPPConnection, получив мьютекс или что-то в этом роде.Правильно?
Решение
Похоже, что это известная ошибка.
Не связан с StackOverflow