private final AbstractExecutionModulesManager executionModulesManager;
private final SlcExecution slcProcess;
- private final ThreadGroup processThreadGroup;
+ private final ProcessThreadGroup processThreadGroup;
private final List<RealizedFlow> flowsToProcess = new ArrayList<RealizedFlow>();
+ private Boolean hadAnError = false;
+
public ProcessThread(
AbstractExecutionModulesManager executionModulesManager,
SlcExecution slcExecution) {
"SLC Process #" + slcExecution.getUuid());
this.executionModulesManager = executionModulesManager;
this.slcProcess = slcExecution;
- processThreadGroup = new ThreadGroup("SLC Process #"
- + slcExecution.getUuid() + " thread group");
+ processThreadGroup = new ProcessThreadGroup(this);
}
public void run() {
}
}
- slcProcess.setStatus(SlcExecution.STATUS_FINISHED);
+ if (hadAnError)
+ slcProcess.setStatus(SlcExecution.STATUS_ERROR);
+ else
+ slcProcess.setStatus(SlcExecution.STATUS_FINISHED);
dispatchUpdateStatus(slcProcess, SlcExecution.STATUS_RUNNING,
- SlcExecution.STATUS_FINISHED);
+ slcProcess.getStatus());
}
protected void dispatchUpdateStatus(SlcExecution slcExecution,
}
}
+ public void notifyError() {
+ hadAnError = true;
+ }
+
public synchronized void flowCompleted() {
notifyAll();
}
return slcProcess;
}
- public ThreadGroup getProcessThreadGroup() {
+ public ProcessThreadGroup getProcessThreadGroup() {
return processThreadGroup;
}