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 <psuzzi@gmail.com>
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 a29105d..74e32f2 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 <psuzzi@gmail.com> - Bug 507661
*******************************************************************************/
package org.eclipse.ui.console;
@@ -282,7 +283,8 @@
@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 267937c..08efd3b 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 <psuzzi@gmail.com> - Bug 507661
*******************************************************************************/
package org.eclipse.ui.console;
@@ -165,7 +166,8 @@
@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;