private boolean submit(Job job) throws InterruptedException, IOException {
assert job != null;
monitor.checkCancelled();
try {
Executing execution = executor.submit(
monitor.createJobMonitor(job.getId(), 1), context, job, doneQueue);
executing.put(execution.getJob().getId(), execution);
return true;
} catch (IOException e) {
sawError = true;
handleException(job, e);
return false;