1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 02:36:01 +02:00

Bug 471143 - Prevent potential NPE in disconnect

Change-Id: I6a160806868048442c0e09bd8541177a650d01bb
Signed-off-by: Greg Watson <g.watson@computer.org>
This commit is contained in:
Greg Watson 2015-06-26 11:02:46 -04:00
parent bc64e0a017
commit 59d044cdfb

View file

@ -46,9 +46,12 @@ public class TerminalConsoleConnector {
public OutThread() { public OutThread() {
super("Terminal Output"); //$NON-NLS-1$ super("Terminal Output"); //$NON-NLS-1$
} }
@Override
public void run() { public void run() {
try { try {
byte[] buff = new byte[1024]; byte[] buff = new byte[1024];
if (remoteProcess != null) {
InputStream in = remoteProcess.getInputStream(); InputStream in = remoteProcess.getInputStream();
for (int n = in.read(buff); n >= 0; n = in.read(buff)) { for (int n = in.read(buff); n >= 0; n = in.read(buff)) {
for (PageConnector connector : pageConnectors) { for (PageConnector connector : pageConnectors) {
@ -58,6 +61,7 @@ public class TerminalConsoleConnector {
} }
} }
} }
}
setState(TerminalState.CLOSED); setState(TerminalState.CLOSED);
synchronized (TerminalConsoleConnector.this) { synchronized (TerminalConsoleConnector.this) {
outThread = null; outThread = null;
@ -67,6 +71,7 @@ public class TerminalConsoleConnector {
} }
} }
} }
private OutThread outThread; private OutThread outThread;
public TerminalConsoleConnector(IRemoteConnection connection) { public TerminalConsoleConnector(IRemoteConnection connection) {
@ -153,7 +158,7 @@ public class TerminalConsoleConnector {
} }
public void disconnect() { public void disconnect() {
if (!remoteProcess.isCompleted()) { if (remoteProcess != null && !remoteProcess.isCompleted()) {
new Job(ConsoleMessages.DISCONNECTING) { new Job(ConsoleMessages.DISCONNECTING) {
@Override @Override
protected IStatus run(IProgressMonitor monitor) { protected IStatus run(IProgressMonitor monitor) {
@ -200,7 +205,7 @@ public class TerminalConsoleConnector {
@Override @Override
public OutputStream getTerminalToRemoteStream() { public OutputStream getTerminalToRemoteStream() {
return remoteProcess.getOutputStream(); return remoteProcess != null ? remoteProcess.getOutputStream() : null;
} }
@Override @Override