* @see AbstractJob#doExecute(JobExecution)
*/
@Override
protected void doExecute(final JobExecution execution) throws JobExecutionException {
try {
JobFlowExecutor executor = new JsrFlowExecutor(getJobRepository(),
new JsrStepHandler(getJobRepository(), jobExplorer), execution);
State startState = ((JsrFlow)flow).getStartState();
validateFirstStep(startState);
executor.updateJobExecutionStatus(flow.start(executor).getStatus());
}
catch (FlowExecutionException e) {
if (e.getCause() instanceof JobExecutionException) {
throw (JobExecutionException) e.getCause();
}