@Override
 public JobStatus cancelJob(String jobRef) {
   log.debug("Incoming request to cancel a job with reference: " + jobRef);
   try {
     return jobManager.cancelJob(jobRef);
   } catch (Exception e) {
     log.error("Caught an exception when trying to cancel the job: " + e.getMessage(), e);
     return new JobStatus(JobStatusType.ERROR, e.getMessage());
   }
 }
 @Override
 public JobStatus getJobStatus(String jobRef) {
   log.debug("Incoming request to get job status for job with reference: " + jobRef);
   try {
     return jobManager.getJobStatus(jobRef);
   } catch (Exception e) {
     return new JobStatus(JobStatusType.ERROR, e.getMessage());
   }
 }
 @Override
 public JobDetails getJobDetails(String jobRef) {
   log.debug("Incoming request for job details for reference: " + jobRef);
   try {
     return jobManager.getJobDetails(jobRef);
   } catch (Exception e) {
     log.error("No such job with reference: " + jobRef);
     return new JobDetails(jobRef, new JobStatus(JobStatusType.ERROR, e.getMessage()), null);
   }
 }
 @Override
 public EvaluationResult getEvaluationResult(String jobRef) {
   log.debug("Incoming request to get evaluation results for job with reference: " + jobRef);
   try {
     return jobManager.getEvaluationResult(jobRef);
   } catch (Exception e) {
     return new EvaluationResult(
         new JobDetails(jobRef, new JobStatus(JobStatusType.ERROR, e.getMessage()), null),
         null,
         null,
         null);
   }
 }