From 465c87e07610ac0a20f82045da689815deaaffb2 Mon Sep 17 00:00:00 2001 From: Andreas Loth Date: Mon, 10 Jul 2017 10:58:26 +0530 Subject: Bug 518909 - Regression: IOConsoleOutputStream.setEncoding(String) cannot handle null argument anymore Change-Id: I5bb76e1c850a80b88f6f5e82a9e7fceacd6d6d8c Signed-off-by: Andreas Loth --- .../src/org/eclipse/debug/tests/console/ConsoleTests.java | 7 +++++++ .../src/org/eclipse/ui/console/IOConsoleOutputStream.java | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java b/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java index d0704a8d9..d1f315a62 100644 --- a/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java +++ b/org.eclipse.debug.tests/src/org/eclipse/debug/tests/console/ConsoleTests.java @@ -137,4 +137,11 @@ public class ConsoleTests extends AbstractDebugTest { } } + public void testSetNullEncoding() throws IOException { + MessageConsole console = new MessageConsole("Test Console 6", null); //$NON-NLS-1$ + try (IOConsoleOutputStream outStream = console.newOutputStream()) { + outStream.setEncoding(null); + } + } + } 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 0cba219c1..6f9c55950 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 @@ -16,6 +16,7 @@ import java.io.OutputStream; import java.nio.charset.Charset; import org.eclipse.swt.graphics.Color; +import org.eclipse.ui.WorkbenchEncoding; import org.eclipse.ui.internal.console.IOConsolePartitioner; import org.eclipse.ui.internal.console.StreamDecoder; @@ -311,7 +312,13 @@ public class IOConsoleOutputStream extends OutputStream { * @param encoding encoding identifier */ public void setEncoding(String encoding) { - Charset charset = Charset.forName(encoding); + String charsetName; + if (encoding == null) { + charsetName = WorkbenchEncoding.getWorkbenchDefaultEncoding(); + } else { + charsetName = encoding; + } + Charset charset = Charset.forName(charsetName); try { this.setCharset(charset); } catch (IOException ioe) { -- cgit v1.2.3