From 2afa5caefe0b32f18cf7e3fb0a62df969d7197d4 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Wed, 22 Mar 2017 12:10:56 +0300 Subject: [PATCH] Don't use misleading optimization (NewVirtualFile.getCachedChildren) in project open processors as it actually useless most time (since inheritors use findChild api) and can return wrong answer in some cases (e.g. in headless mode) --- .../projectImport/ProjectOpenProcessorBase.java | 13 ++++--------- .../project/wizard/GradleProjectOpenProcessor.java | 5 ----- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java b/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java index 1a8185d774f3..eed0d38e2543 100644 --- a/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java +++ b/java/idea-ui/src/com/intellij/projectImport/ProjectOpenProcessorBase.java @@ -37,7 +37,7 @@ import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.newvfs.NewVirtualFile; +import com.intellij.util.ObjectUtils; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -45,8 +45,6 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.io.File; import java.io.IOException; -import java.util.Arrays; -import java.util.Collection; /** * @author anna @@ -82,12 +80,9 @@ public abstract class ProjectOpenProcessorBase e return false; } - private static Collection getFileChildren(VirtualFile file) { - if (file instanceof NewVirtualFile) { - return ((NewVirtualFile)file).getCachedChildren(); - } - - return Arrays.asList(file.getChildren()); + @NotNull + private static VirtualFile[] getFileChildren(VirtualFile file) { + return ObjectUtils.chooseNotNull(file.getChildren(), VirtualFile.EMPTY_ARRAY); } protected static boolean canOpenFile(VirtualFile file, String[] supported) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleProjectOpenProcessor.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleProjectOpenProcessor.java index 95f77ab2caa9..68b7f0412afd 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleProjectOpenProcessor.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/project/wizard/GradleProjectOpenProcessor.java @@ -63,11 +63,6 @@ public class GradleProjectOpenProcessor extends ProjectOpenProcessorBase