Inspectopedia Help

Unsafe VFS recursion

Reports usage of VirtualFile.getChildren() inside recursive methods.

This may cause endless loops when iterating over cyclic symlinks. Use VfsUtilCore.visitChildrenRecursively() instead.

void processDirectory(VirtualFile dir) { for (VirtualFile file : dir.getChildren()) { // bad if (!file.isDirectory()) { processFile(file); } else { processDirectory(file); // recursive call } } }
void processDirectory(VirtualFile dir) { VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor<Void>() { // good @Override public boolean visitFile(@NotNull VirtualFile file) { if (!file.isDirectory()) { processFile(file); } return true; } }); }

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Plugin DevKit, 241.16690

Last modified: 29 April 2024