[tcp] Do not needlessly wait for closing stream tag

This commit is contained in:
Florian Schmaus 2020-05-31 14:15:13 +02:00
parent 84b7adb764
commit b7465e8200
1 changed files with 12 additions and 7 deletions

View File

@ -477,14 +477,19 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
} }
private void shutdown(boolean instant) { private void shutdown(boolean instant) {
// First shutdown the writer, this will result in a closing stream element getting send to // The writer thread may already been finished at this point, for example when the connection is in the
// the server // disconnected-but-resumable state. There is no need to wait for the closing stream tag from the server in this
LOGGER.finer("PacketWriter shutdown()"); // case.
packetWriter.shutdown(instant); if (!packetWriter.done()) {
LOGGER.finer("PacketWriter has been shut down"); // First shutdown the writer, this will result in a closing stream element getting send to
// the server
LOGGER.finer("PacketWriter shutdown()");
packetWriter.shutdown(instant);
LOGGER.finer("PacketWriter has been shut down");
if (!instant) { if (!instant) {
waitForClosingStreamTagFromServer(); waitForClosingStreamTagFromServer();
}
} }
LOGGER.finer("PacketReader shutdown()"); LOGGER.finer("PacketReader shutdown()");