job = (Job)Utils.callConstructor(executorClass, jobDescriptor);
// wrap up job in retrying proxy if necessary
if(jobDescriptor.getRetries() > 0)
job = new RetryingJob(job, jobDescriptor.getRetries(), jobDescriptor.getRetryBackoffMs());
// Group Lock List
ArrayList<JobLock> jobLocks = new ArrayList<JobLock>();
// If this job requires work permits wrap it in a resource throttler