diff --git a/bundles/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java b/bundles/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java index 2d27b99c881..e524e4bcb4e 100644 --- a/bundles/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java +++ b/bundles/org.eclipse.remote.console/src/org/eclipse/remote/internal/console/TerminalConsoleConnector.java @@ -61,13 +61,14 @@ public class TerminalConsoleConnector { } } } - setState(TerminalState.CLOSED); - synchronized (TerminalConsoleConnector.this) { - outThread = null; - } } catch (IOException e) { Activator.log(e); } + + synchronized (TerminalConsoleConnector.this) { + outThread = null; + disconnect(); + } } } @@ -135,7 +136,7 @@ public class TerminalConsoleConnector { remoteProcess = connection.getService(IRemoteCommandShellService.class) .getCommandShell(IRemoteProcessBuilder.ALLOCATE_PTY); } catch (IOException e) { - Activator.log(e); + disconnect(); return new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getLocalizedMessage(), e); } } @@ -165,9 +166,13 @@ public class TerminalConsoleConnector { @Override protected IStatus run(IProgressMonitor monitor) { remoteProcess.destroy(); + remoteProcess = null; + setState(TerminalState.CLOSED); return Status.OK_STATUS; } }.schedule(); + } else { + setState(TerminalState.CLOSED); } }