Add checks for Channel.isOpen to ChannelOutputStream (Fixes #440)

This commit is contained in:
Jeroen van Erp
2020-04-14 22:23:35 +02:00
parent 1a70023e2d
commit 2bb52fcf7d

View File

@@ -150,7 +150,8 @@ public final class ChannelOutputStream extends OutputStream implements ErrorNoti
}
private void checkClose() throws SSHException {
if (closed) {
// Check whether either the Stream is closed, or the underlying channel is closed
if (closed || !chan.isOpen()) {
if (error != null)
throw error;
else
@@ -160,7 +161,8 @@ public final class ChannelOutputStream extends OutputStream implements ErrorNoti
@Override
public synchronized void close() throws IOException {
if (!closed) {
// Not closed yet, and underlying channel is open to flush the data to.
if (!closed && chan.isOpen()) {
try {
buffer.flush(false);
// trans.write(new SSHPacket(Message.CHANNEL_EOF).putUInt32(chan.getRecipient()));