in src/main/java/org/apache/sling/commons/jcr/file/internal/JcrDirectoryStream.java [70:110]
public Iterator<Path> iterator() {
logger.info("iterator for {}", directory);
final Set<String> paths = new HashSet<>();
try {
final NodeIterator nodes = node.getNodes();
while (nodes.hasNext()) {
final Node node = nodes.nextNode();
if (fileSystem.provider().isDirectory(node) || fileSystem.provider().isFile(node)) {
final String path = node.getPath();
paths.add(path);
logger.info("node {} added", path);
}
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
return new Iterator<Path>() {
final Iterator<String> iterator = paths.iterator();
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public Path next() {
return new JcrPath(fileSystem, iterator.next());
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
};
}