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:
parent
78325314e3
commit
c25cfb3731
1 changed files with 21 additions and 10 deletions
|
@ -14,6 +14,7 @@ import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
|
|||
import org.eclipse.cdt.dsf.concurrent.DsfExecutor;
|
||||
import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
|
||||
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.ui.actions.DsfCommandRunnable;
|
||||
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) {
|
||||
@Override public void doExecute() {
|
||||
IContainerDMContext containerDmc = DMContexts.getAncestorOfType(getContext(), IContainerDMContext.class);
|
||||
IProcesses procService = getProcessService();
|
||||
|
||||
getProcessService().canDetachDebuggerFromProcess(
|
||||
containerDmc,
|
||||
new DataRequestMonitor<Boolean>(fExecutor, null) {
|
||||
@Override
|
||||
protected void handleCompleted() {
|
||||
request.setEnabled(isSuccess() && getData());
|
||||
request.done();
|
||||
}
|
||||
});
|
||||
if (procService != null) {
|
||||
procService.canDetachDebuggerFromProcess(
|
||||
containerDmc,
|
||||
new DataRequestMonitor<Boolean>(fExecutor, null) {
|
||||
@Override
|
||||
protected void handleCompleted() {
|
||||
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) {
|
||||
@Override public void doExecute() {
|
||||
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;
|
||||
|
|
Loading…
Add table
Reference in a new issue