in src/main/java/org/apache/sling/event/impl/jobs/tasks/CheckTopologyTask.java [72:99]
private void reassignJobsFromStoppedInstances() {
if ( caps.isLeader() && caps.isActive() ) {
this.logger.debug("Checking for stopped instances...");
final ResourceResolver resolver = this.configuration.createResourceResolver();
if ( resolver != null ) {
try {
final Resource jobsRoot = resolver.getResource(this.configuration.getAssginedJobsPath());
this.logger.debug("Got jobs root {}", jobsRoot);
// this resource should exist, but we check anyway
if ( jobsRoot != null ) {
final Iterator<Resource> instanceIter = jobsRoot.listChildren();
while ( caps.isActive() && instanceIter.hasNext() ) {
final Resource instanceResource = instanceIter.next();
final String instanceId = instanceResource.getName();
if ( !caps.isActive(instanceId) ) {
logger.debug("Found stopped instance {}", instanceId);
assignJobs(instanceResource, true);
}
}
}
} finally {
resolver.close();
}
}
}
}