From 983acc0cecfd1e5df8d5c79f6bf561e074d1a996 Mon Sep 17 00:00:00 2001 From: Patrik Suzzi Date: Fri, 18 Nov 2016 23:53:40 +0100 Subject: Bug 507661 - IOConsoleOutputStream and IOConsoleInputStream throw IOE According to Javadoc, java.io.Closeable#close() has no effect if already closed. With this change, IOConsoleOutputStream and IOConsoleInputStream are not throwing exception anymore when calling close() twice. Change-Id: I5fc4ae8eb4fbc276ff81c7e6cee606277ba91d39 Signed-off-by: Patrik Suzzi --- .../src/org/eclipse/ui/console/IOConsoleInputStream.java | 6 ++++-- .../src/org/eclipse/ui/console/IOConsoleOutputStream.java | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java index a29105d3a..74e32f2c1 100644 --- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java +++ b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. + * Copyright (c) 2000, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Patrik Suzzi - Bug 507661 *******************************************************************************/ package org.eclipse.ui.console; @@ -282,7 +283,8 @@ public class IOConsoleInputStream extends InputStream { @Override public synchronized void close() throws IOException { if(closed) { - throw new IOException("Input Stream Closed"); //$NON-NLS-1$ + // Closeable#close() has no effect if already closed + return; } closed = true; notifyAll(); diff --git a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java index 267937c9b..08efd3bfd 100644 --- a/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java +++ b/org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2015 IBM Corporation and others. + * Copyright (c) 2000, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Patrik Suzzi - Bug 507661 *******************************************************************************/ package org.eclipse.ui.console; @@ -165,7 +166,8 @@ public class IOConsoleOutputStream extends OutputStream { @Override public synchronized void close() throws IOException { if(closed) { - throw new IOException("Output Stream is closed"); //$NON-NLS-1$ + // Closeable#close() has no effect if already closed + return; } if (prependCR) { // force writing of last /r prependCR = false; -- cgit v1.2.3