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

[269373] Must guard against a null service reference.

This commit is contained in:
Marc Khouzam 2009-03-19 14:38:00 +00:00
parent 78325314e3
commit c25cfb3731

View file

@ -14,6 +14,7 @@ import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.concurrent.DsfExecutor; import org.eclipse.cdt.dsf.concurrent.DsfExecutor;
import org.eclipse.cdt.dsf.concurrent.RequestMonitor; import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
import org.eclipse.cdt.dsf.datamodel.DMContexts; import org.eclipse.cdt.dsf.datamodel.DMContexts;
import org.eclipse.cdt.dsf.debug.service.IProcesses;
import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext;
import org.eclipse.cdt.dsf.debug.ui.actions.DsfCommandRunnable; import org.eclipse.cdt.dsf.debug.ui.actions.DsfCommandRunnable;
import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin; import org.eclipse.cdt.dsf.gdb.internal.ui.GdbUIPlugin;
@ -46,16 +47,22 @@ public class GdbDisconnectCommand implements IDisconnectHandler {
fExecutor.submit(new DsfCommandRunnable(fTracker, request.getElements()[0], request) { fExecutor.submit(new DsfCommandRunnable(fTracker, request.getElements()[0], request) {
@Override public void doExecute() { @Override public void doExecute() {
IContainerDMContext containerDmc = DMContexts.getAncestorOfType(getContext(), IContainerDMContext.class); IContainerDMContext containerDmc = DMContexts.getAncestorOfType(getContext(), IContainerDMContext.class);
IProcesses procService = getProcessService();
getProcessService().canDetachDebuggerFromProcess( if (procService != null) {
containerDmc, procService.canDetachDebuggerFromProcess(
new DataRequestMonitor<Boolean>(fExecutor, null) { containerDmc,
@Override new DataRequestMonitor<Boolean>(fExecutor, null) {
protected void handleCompleted() { @Override
request.setEnabled(isSuccess() && getData()); protected void handleCompleted() {
request.done(); request.setEnabled(isSuccess() && getData());
} request.done();
}); }
});
} else {
request.setEnabled(false);
request.done();
}
} }
}); });
} }
@ -69,7 +76,11 @@ public class GdbDisconnectCommand implements IDisconnectHandler {
fExecutor.submit(new DsfCommandRunnable(fTracker, request.getElements()[0], request) { fExecutor.submit(new DsfCommandRunnable(fTracker, request.getElements()[0], request) {
@Override public void doExecute() { @Override public void doExecute() {
IContainerDMContext containerDmc = DMContexts.getAncestorOfType(getContext(), IContainerDMContext.class); IContainerDMContext containerDmc = DMContexts.getAncestorOfType(getContext(), IContainerDMContext.class);
getProcessService().detachDebuggerFromProcess(containerDmc, new RequestMonitor(fExecutor, null)); IProcesses procService = getProcessService();
if (procService != null) {
procService.detachDebuggerFromProcess(containerDmc, new RequestMonitor(fExecutor, null));
}
} }
}); });
return false; return false;