Remove null checks for writer/reader fields in XMPPTCPConnection

as those are never null since
60f324eb1b (the previous commit).
This commit is contained in:
Florian Schmaus 2019-02-09 18:20:55 +01:00
parent 60f324eb1b
commit 78dcaec75b
2 changed files with 21 additions and 15 deletions

View File

@ -234,6 +234,16 @@ public class SynchronizationPoint<E extends Exception> {
}
}
public boolean isNotInInitialState() {
connectionLock.lock();
try {
return state != State.Initial;
}
finally {
connectionLock.unlock();
}
}
/**
* Check if this synchronization point has its request already sent.
*

View File

@ -492,10 +492,8 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
// First shutdown the writer, this will result in a closing stream element getting send to
// the server
if (packetWriter != null) {
LOGGER.finer("PacketWriter shutdown()");
packetWriter.shutdown(instant);
}
LOGGER.finer("PacketWriter shutdown()");
packetWriter.shutdown(instant);
LOGGER.finer("PacketWriter has been shut down");
if (!instant) {
@ -510,10 +508,8 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
}
}
if (packetReader != null) {
LOGGER.finer("PacketReader shutdown()");
packetReader.shutdown();
}
LOGGER.finer("PacketReader shutdown()");
packetReader.shutdown();
LOGGER.finer("PacketReader has been shut down");
try {
@ -929,8 +925,7 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
*/
private synchronized void notifyConnectionError(Exception e) {
// Listeners were already notified of the exception, return right here.
if ((packetReader == null || packetReader.done) &&
(packetWriter == null || packetWriter.done())) return;
if (packetReader.done && packetWriter.done()) return;
SmackWrappedException smackWrappedException = new SmackWrappedException(e);
tlsHandled.reportGenericFailure(smackWrappedException);
@ -1386,11 +1381,12 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
instantShutdown = instant;
queue.shutdown();
shutdownTimestamp = System.currentTimeMillis();
try {
shutdownDone.checkIfSuccessOrWait();
}
catch (NoResponseException | InterruptedException e) {
LOGGER.log(Level.WARNING, "shutdownDone was not marked as successful by the writer thread", e);
if (shutdownDone.isNotInInitialState()) {
try {
shutdownDone.checkIfSuccessOrWait();
} catch (NoResponseException | InterruptedException e) {
LOGGER.log(Level.WARNING, "shutdownDone was not marked as successful by the writer thread", e);
}
}
}