in src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java [143:175]
private void scan() {
final ResourceResolver resolver = configuration.createResourceResolver();
if ( resolver != null ) {
try {
logger.debug("Scanning for scheduled jobs...");
final String path = this.configuration.getScheduledJobsPath(false);
final Resource startResource = resolver.getResource(path);
if ( startResource != null ) {
final Map<String, Holder> newScheduledJobs = new HashMap<String, Holder>();
synchronized ( this.scheduledJobs ) {
for(final Resource rsrc : startResource.getChildren()) {
if ( !isRunning.get() ) {
break;
}
handleAddOrUpdate(newScheduledJobs, rsrc);
}
if ( isRunning.get() ) {
for(final Holder h : this.scheduledJobs.values()) {
if ( h.info != null ) {
this.jobScheduler.unscheduleJob(h.info);
}
}
this.scheduledJobs.clear();
this.scheduledJobs.putAll(newScheduledJobs);
}
}
}
logger.debug("Finished scanning for scheduled jobs...");
} finally {
resolver.close();
}
}
}