Source:
<code>public Guid schedule(String className, Guid jobId, String methodName, List<String> inputTypes, List<String> inputParams, String cronExpression, Date startDate, Date endDate, String timeZone) { log.info("Scheduling a cron job. className: {},methodName : , jobId: {}", className, methodName, jobId); boolean isNewJob = false; if (Guid.isNullOrEmpty(jobId)) { jobId = Guid.newGuid(); isNewJob = true; } GlusterJobDetails job = new GlusterJobDetails(); job.setJobId(jobId); job.setJobClassName(className); job.setJobName(methodName); job.setCronSchedule(cronExpression); if (startDate != null) { job.setStartDate(convertDate(startDate)); } if (endDate != null) { job.setEndDate(convertDate(endDate)); } if <START> (!StringUtils.isEmpty(timeZone)) { <END> job.setTimeZone(timeZone); } List<GlusterJobParams> params = new ArrayList<>(); for (int i = 0; i < inputTypes.size(); i++) { GlusterJobParams param = new GlusterJobParams(); param.setJobId(job.getJobId()); param.setParamsClassName(inputTypes.get(i)); param.setParamsClassValue(inputParams.get(i)); params.add(param); } if (isNewJob) { log.info("Scheduling a new cron job. className: {},methodName : , jobId: {}", className, methodName, jobId); scheduleDao.save(job); jobParamsDao.save(job.getJobId(), params); } TimerConfig config = new TimerConfig(); config.setInfo(job); timerService.createCalendarTimer(getScheduleExpression(cronExpression, startDate, endDate, timeZone), config); return jobId; }</code><technical_language>this checked apache commons lang3: StringUtils.isNotBlank(timeZone) if empty returns false for strings " " I suppose is is expected</technical_language>

Target:
public Guid schedule(String className, Guid jobId, String methodName, List<String> inputTypes, List<String> inputParams, String cronExpression, Date startDate, Date endDate, String timeZone) { log.info("Scheduling a cron job. className: {},methodName : , jobId: {}", className, methodName, jobId); boolean isNewJob = false; if (Guid.isNullOrEmpty(jobId)) { jobId = Guid.newGuid(); isNewJob = true; } GlusterJobDetails job = new GlusterJobDetails(); job.setJobId(jobId); job.setJobClassName(className); job.setJobName(methodName); job.setCronSchedule(cronExpression); try { if (startDate != null) { job.setStartDate(convertDate(startDate)); } if (endDate != null) { job.setEndDate(convertDate(endDate)); } } catch (ParseException e) { log.error("Error while converting the date to simple date format startDate: endDate:{}", startDate, endDate); } if (StringUtils.isNotBlank(timeZone)) { job.setTimeZone(timeZone); } List<GlusterJobParams> params = new ArrayList<>(); for (int i = 0; i < inputTypes.size(); i++) { GlusterJobParams param = new GlusterJobParams(); param.setJobId(job.getJobId()); param.setParamsClassName(inputTypes.get(i)); param.setParamsClassValue(inputParams.get(i)); params.add(param); } if (isNewJob) { log.info("Scheduling a new cron job. className: {},methodName : , jobId: {}", className, methodName, jobId); scheduleDao.save(job); jobParamsDao.save(job.getJobId(), params); } TimerConfig config = new TimerConfig(); config.setInfo(job.getJobId()); timerService.createCalendarTimer(getScheduleExpression(cronExpression, startDate, endDate, timeZone), config); return jobId; }