mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-22 14:22:05 +01:00
Delay notifyConnectionError in writer shutdown
This commit is contained in:
parent
8deac592fb
commit
08c93da56a
1 changed files with 6 additions and 1 deletions
|
@ -1349,6 +1349,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writePackets() {
|
private void writePackets() {
|
||||||
|
Exception writerException = null;
|
||||||
try {
|
try {
|
||||||
openStream();
|
openStream();
|
||||||
initalOpenStreamSend.reportSuccess();
|
initalOpenStreamSend.reportSuccess();
|
||||||
|
@ -1471,7 +1472,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
||||||
// The exception can be ignored if the the connection is 'done'
|
// The exception can be ignored if the the connection is 'done'
|
||||||
// or if the it was caused because the socket got closed
|
// or if the it was caused because the socket got closed
|
||||||
if (!(done() || queue.isShutdown())) {
|
if (!(done() || queue.isShutdown())) {
|
||||||
notifyConnectionError(e);
|
writerException = e;
|
||||||
} else {
|
} else {
|
||||||
LOGGER.log(Level.FINE, "Ignoring Exception in writePackets()", e);
|
LOGGER.log(Level.FINE, "Ignoring Exception in writePackets()", e);
|
||||||
}
|
}
|
||||||
|
@ -1479,6 +1480,10 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
||||||
LOGGER.fine("Reporting shutdownDone success in writer thread");
|
LOGGER.fine("Reporting shutdownDone success in writer thread");
|
||||||
shutdownDone.reportSuccess();
|
shutdownDone.reportSuccess();
|
||||||
}
|
}
|
||||||
|
// Delay notifyConnectionError after shutdownDone has been reported in the finally block.
|
||||||
|
if (writerException != null) {
|
||||||
|
notifyConnectionError(writerException);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drainWriterQueueToUnacknowledgedStanzas() {
|
private void drainWriterQueueToUnacknowledgedStanzas() {
|
||||||
|
|
Loading…
Reference in a new issue