in src/main/java/org/apache/sling/event/impl/jobs/scheduling/JobSchedulerImpl.java [514:554]
public ScheduledJobInfo addScheduledJob(final String topic,
final Map<String, Object> properties,
final String scheduleName,
final boolean isSuspended,
final List<ScheduleInfoImpl> scheduleInfos,
final List<String> errors) {
final List<String> msgs = new ArrayList<>();
if ( scheduleName == null || scheduleName.length() == 0 ) {
msgs.add("Schedule name not specified");
}
final String errorMessage = Utility.checkJob(topic, properties);
if ( errorMessage != null ) {
msgs.add(errorMessage);
}
if ( scheduleInfos.size() == 0 ) {
msgs.add("No schedule defined for " + scheduleName);
}
for(final ScheduleInfoImpl info : scheduleInfos) {
info.check(msgs);
}
if ( msgs.size() == 0 ) {
try {
final ScheduledJobInfo info = this.scheduledJobHandler.addOrUpdateJob(topic, properties, scheduleName, isSuspended, scheduleInfos);
if ( info != null ) {
return info;
}
msgs.add("Unable to persist scheduled job.");
} catch ( final PersistenceException pe) {
msgs.add("Unable to persist scheduled job: " + scheduleName);
logger.warn("Unable to persist scheduled job", pe);
}
} else {
for(final String msg : msgs) {
logger.warn(msg);
}
}
if ( errors != null ) {
errors.addAll(msgs);
}
return null;
}