From e9ea279fb48b3e243a9fff507edfb0d50feb45a6 Mon Sep 17 00:00:00 2001 From: Andrey Loskutov Date: Fri, 25 Jan 2019 13:33:08 +0100 Subject: Bug 543832 - NPE in ProcessConsole.getStream() Reordered stream disposal and disconnecting of listeners, so that listener should not run on disposed streams. Change-Id: I895f580c7eaca746994bd78f31ea82c62bfddffd Signed-off-by: Andrey Loskutov --- .../debug/internal/ui/views/console/ProcessConsole.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsole.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsole.java index 69c8bb9fb..879e806ea 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsole.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ProcessConsole.java @@ -360,13 +360,13 @@ public class ProcessConsole extends IOConsole implements IConsole, IDebugEventSe } } - /** - * @see org.eclipse.debug.ui.console.IConsole#getStream(java.lang.String) - */ @Override public IOConsoleOutputStream getStream(String streamIdentifier) { + if (streamIdentifier == null) { + return null; + } for (StreamListener listener : fStreamListeners) { - if (listener.fStreamId.equals(streamIdentifier)) { + if (streamIdentifier.equals(listener.fStreamId)) { return listener.fStream; } } @@ -388,11 +388,11 @@ public class ProcessConsole extends IOConsole implements IConsole, IDebugEventSe protected void dispose() { super.dispose(); fColorProvider.disconnect(); - closeStreams(); - disposeStreams(); DebugPlugin.getDefault().removeDebugEventListener(this); DebugUIPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(this); JFaceResources.getFontRegistry().removeListener(this); + closeStreams(); + disposeStreams(); } /** -- cgit v1.2.3