code: @Override
      public Entry<Long, Future<?>> restartInstance(long instanceId, Properties restartParameters, long executionId)
                      throws JobExecutionAlreadyCompleteException,
                      NoSuchJobExecutionException, JobExecutionNotMostRecentException,
                      JobRestartException, JobSecurityException {
  
          if (authService != null) {
              authService.authorizedJobRestartByInstance(instanceId);
          }
  
          WSJobInstance jobInstance = persistenceManagerService.getJobInstance(instanceId);
  
          IJobXMLSource jobXML;
          if (!StringUtils.isEmpty(jobInstance.getJobXml())) {
              jobXML = new JobXMLSource(jobInstance.getJobXml());
          } else {
              jobXML = jslLoaderService.loadJSL(jobInstance.getJobXMLName());
          }
  
          Entry<Long, Future<?>> execIdFutureEntry = batchKernelService.restartJobInstance(instanceId, jobXML, restartParameters, executionId);
  
          return execIdFutureEntry;
      }
docs: {@inheritDoc}