diff --git a/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java b/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java index 09209950..92a43332 100644 --- a/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java +++ b/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java @@ -258,13 +258,15 @@ public abstract class AbstractChannel throws ConnectionException, TransportException { openCloseLock.lock(); try { - try { - sendClose(); - } catch (TransportException e) { - if (!closeEvent.inError()) - throw e; + if (isOpen()) { + try { + sendClose(); + } catch (TransportException e) { + if (!closeEvent.inError()) + throw e; + } + closeEvent.await(conn.getTimeout(), TimeUnit.SECONDS); } - closeEvent.await(conn.getTimeout(), TimeUnit.SECONDS); } finally { openCloseLock.unlock(); }