From 89c426c062c7611fe28dca9eeacac7e9c39c5743 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 7 Nov 2018 20:54:13 +0100 Subject: [PATCH] [java] reduces use of VFS on JDK classes root detection --- .../openapi/projectRoots/impl/JavaSdkImpl.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java index 0776297dd4d2..3dd780429ce8 100644 --- a/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java +++ b/java/java-impl/src/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java @@ -410,13 +410,12 @@ public class JavaSdkImpl extends JavaSdk { @NotNull private static List findClasses(@NotNull File file, boolean isJre) { List result = ContainerUtil.newArrayList(); - VirtualFileManager fileManager = VirtualFileManager.getInstance(); if (JdkUtil.isExplodedModularRuntime(file.getPath())) { - VirtualFile exploded = fileManager.findFileByUrl(StandardFileSystems.FILE_PROTOCOL_PREFIX + getPath(new File(file, "modules"))); + File[] exploded = new File(file, "modules").listFiles(); if (exploded != null) { - for (VirtualFile virtualFile : exploded.getChildren()) { - result.add(virtualFile.getUrl()); + for (File root : exploded) { + result.add(VfsUtil.getUrlForLibraryRoot(root)); } } } @@ -429,7 +428,7 @@ public class JavaSdkImpl extends JavaSdk { } } else { - VirtualFile jrt = fileManager.findFileByUrl(jrtBaseUrl); + VirtualFile jrt = VirtualFileManager.getInstance().findFileByUrl(jrtBaseUrl); if (jrt != null) { for (VirtualFile virtualFile : jrt.getChildren()) { result.add(virtualFile.getUrl()); @@ -439,8 +438,7 @@ public class JavaSdkImpl extends JavaSdk { } else { for (File root : JavaSdkUtil.getJdkClassesRoots(file, isJre)) { - String url = VfsUtil.getUrlForLibraryRoot(root); - result.add(url); + result.add(VfsUtil.getUrlForLibraryRoot(root)); } }