From dbccb0bddbf6691ff0ea4d6c51820d74d6b59dfb Mon Sep 17 00:00:00 2001 From: txbrow2 Date: Fri, 22 Sep 2017 11:31:52 -0600 Subject: [PATCH] Add channel open check before writting f don't check to see if channel is still open to write to - Broken Pipe Exception will be thrown --- Expect.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Expect.java b/Expect.java index 70ba0b9..8fbd57b 100644 --- a/Expect.java +++ b/Expect.java @@ -94,10 +94,15 @@ public void run() { byte[] buffer = new byte[1024]; try { for (int n = 0; n != -1; n = input.read(buffer)) { - out.write(buffer, 0, n); - if (duplicatedTo != null) { - String toWrite = new String(buffer, 0, n); - duplicatedTo.append(toWrite); // no Exception will be thrown + // if don't check to see if channel is still open to write to - Broken Pipe Exception will be thrown + if (pipe.source().isOpen()) { + out.write(buffer, 0, n); + if (duplicatedTo != null) { + String toWrite = new String(buffer, 0, n); + duplicatedTo.append(toWrite); // no Exception will be thrown + } + } else { + log.warn("Socket Channel is no longer open to write " + new String(buffer)); } } log.debug("EOF from InputStream");