in src/main/java/org/apache/sling/event/impl/jobs/scheduling/ScheduledJobHandler.java [320:356]
public void bundleEvent() {
this.lastBundleActivity.set(System.currentTimeMillis());
this.addTask(new Runnable() {
@Override
public void run() {
final Map<String, Holder> updateJobs = new HashMap<String, ScheduledJobHandler.Holder>();
synchronized ( scheduledJobs ) {
for(final Map.Entry<String, Holder> entry : scheduledJobs.entrySet()) {
if ( entry.getValue().info == null && entry.getValue().read < lastBundleActivity.get() ) {
updateJobs.put(entry.getKey(), entry.getValue());
}
}
}
if ( !updateJobs.isEmpty() && isRunning.get() ) {
ResourceResolver resolver = configuration.createResourceResolver();
if ( resolver != null ) {
try {
for(final Map.Entry<String, Holder> entry : updateJobs.entrySet()) {
final String path = configuration.getScheduledJobsPath(true) + entry.getKey();
final Resource rsrc = resolver.getResource(path);
if ( !isRunning.get() ) {
break;
}
if ( rsrc != null ) {
synchronized ( scheduledJobs ) {
handleAddOrUpdate(scheduledJobs, rsrc);
}
}
}
} finally {
resolver.close();
}
}
}
}
});
}