public JobInstance getJobInstance(long jobInstanceId) throws NoSuchJobInstanceException {
   JobInstance jobInstance = jobInstanceDao.getJobInstance(jobInstanceId);
   if (jobInstance == null) {
     throw new NoSuchJobInstanceException(
         "JobInstance with id=" + jobInstanceId + " does not exist");
   }
   return jobInstance;
 }
 public Collection<JobExecution> getJobExecutionsForJobInstance(String name, Long jobInstanceId)
     throws NoSuchJobException {
   checkJobExists(name);
   List<JobExecution> jobExecutions =
       jobExecutionDao.findJobExecutions(jobInstanceDao.getJobInstance(jobInstanceId));
   for (JobExecution jobExecution : jobExecutions) {
     stepExecutionDao.addStepExecutions(jobExecution);
   }
   return jobExecutions;
 }
 public JobExecution getJobExecution(Long jobExecutionId) throws NoSuchJobExecutionException {
   JobExecution jobExecution = jobExecutionDao.getJobExecution(jobExecutionId);
   if (jobExecution == null) {
     throw new NoSuchJobExecutionException("There is no JobExecution with id=" + jobExecutionId);
   }
   jobExecution.setJobInstance(jobInstanceDao.getJobInstance(jobExecution));
   try {
     jobExecution.setExecutionContext(executionContextDao.getExecutionContext(jobExecution));
   } catch (Exception e) {
     logger.info("Cannot load execution context for job execution: " + jobExecution);
   }
   stepExecutionDao.addStepExecutions(jobExecution);
   return jobExecution;
 }