in src/main/java/org/apache/sling/fsprovider/internal/FileMonitor.java [205:231]
private void checkDirStatusChildren(final Monitorable dirMonitorable, final ObservationReporter reporter) {
final DirStatus ds = (DirStatus) dirMonitorable.status;
final File[] files = dirMonitorable.file.listFiles();
if (files != null) {
final Monitorable[] children = new Monitorable[files.length];
for (int i = 0; i < files.length; i++) {
// search in old list
for (int m = 0; m < ds.children.length; m++) {
if (ds.children[m].file.equals(files[i])) {
children[i] = ds.children[m];
break;
}
}
if (children[i] == null) {
children[i] = new Monitorable(
dirMonitorable.path + '/' + files[i].getName(),
files[i],
contentFileExtensions.getSuffix(files[i]));
children[i].status = NonExistingStatus.SINGLETON;
check(children[i], reporter);
}
}
ds.children = children;
} else {
ds.children = new Monitorable[0];
}
}