code: public Launch synchLaunch() throws LaunchException {
  		JobDataMap jobDataMap = new JobDataMap();
  		jobDataMap.put(Launch.PARAMETERS, this.launch.getParameters());
  		jobDataMap.put(Launch.DEFAULT_EXECUTOR_KEY, this.launch.getExecutorService());
  		try {
  			this.launch.synchLaunch();
  		} catch (org.parallelj.launching.LaunchException e) {
  			throw new LaunchException(e);
  		}
  		
  		org.parallelj.launching.LaunchResult result = this.launch.getLaunchResult();
  		jobDataMap.put(QuartzUtils.RETURN_CODE, result.getStatusCode());
  		jobDataMap.put(QuartzUtils.USER_RETURN_CODE, result.getReturnCode());
  		jobDataMap.put(QuartzUtils.PROCEDURES_IN_ERROR, result.getProceduresInError());
  		jobDataMap.put(Launch.OUTPUTS, this.launch.getLaunchResult().getOutputParameters());
  		this.legacyLaunchResult = new LaunchResult(launch.getLaunchId(), jobDataMap);
  		
  		return this;
  	}
docs: Launch a Program and wait until it's terminated.
  
  @return A Launch instance.
  @throws LaunchException
  When a SchedulerException occurred.