From 7a5801c70c8b8010d8dd9516351cdb09e9fb8bfa Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Wed, 29 May 2019 18:54:41 +0200 Subject: [PATCH] file util: don't load a traverser until it's needed GitOrigin-RevId: 9e7ab9650008d8e0272bf178b73f6f4e173c274c --- .../src/com/intellij/openapi/util/io/FileUtil.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java index dc6e892094cf..4f05b86dcad9 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileUtil.java @@ -7,7 +7,6 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.util.text.StringUtilRt; import com.intellij.util.*; import com.intellij.util.concurrency.FixedFuture; import com.intellij.util.containers.ContainerUtil; @@ -1088,13 +1087,15 @@ public class FileUtil extends FileUtilRt { } } - @NotNull - public static JBTreeTraverser fileTraverser(@Nullable File root) { - return FILE_TRAVERSER.withRoot(root); + private static class Lazy { + private static final JBTreeTraverser FILE_TRAVERSER = JBTreeTraverser.from( + (Function>)file -> file == null ? Collections.emptySet() : JBIterable.of(file.listFiles())); } - private static final JBTreeTraverser FILE_TRAVERSER = JBTreeTraverser.from( - (Function>)file -> file == null ? Collections.emptySet() : JBIterable.of(file.listFiles())); + @NotNull + public static JBTreeTraverser fileTraverser(@Nullable File root) { + return Lazy.FILE_TRAVERSER.withRoot(root); + } public static boolean processFilesRecursively(@NotNull File root, @NotNull Processor processor) { return fileTraverser(root).bfsTraversal().processEach(processor);