diff --git a/src/main/java/net/schmizz/sshj/SSHClient.java b/src/main/java/net/schmizz/sshj/SSHClient.java index 22343258..3fb8cfd1 100644 --- a/src/main/java/net/schmizz/sshj/SSHClient.java +++ b/src/main/java/net/schmizz/sshj/SSHClient.java @@ -362,7 +362,6 @@ public class SSHClient @Override public void disconnect() throws IOException { - assert isConnected(); trans.disconnect(); super.disconnect(); assert !isConnected(); diff --git a/src/main/java/net/schmizz/sshj/transport/TransportImpl.java b/src/main/java/net/schmizz/sshj/transport/TransportImpl.java index 054ce034..7e67710b 100644 --- a/src/main/java/net/schmizz/sshj/transport/TransportImpl.java +++ b/src/main/java/net/schmizz/sshj/transport/TransportImpl.java @@ -381,9 +381,9 @@ public final class TransportImpl public void disconnect(DisconnectReason reason, String message) { close.lock(); try { - disconnectListener.notifyDisconnect(reason); - getService().notifyError(new TransportException(reason, "Disconnected")); if (!close.isSet()) { + disconnectListener.notifyDisconnect(reason); + getService().notifyError(new TransportException(reason, "Disconnected")); sendDisconnect(reason, message); finishOff(); close.set();