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;