From 0b538dca2955cb7ca7f15b6c0915ac680849cd0c Mon Sep 17 00:00:00 2001 From: Ilya Korennoy Date: Fri, 12 Dec 2025 11:30:29 +0100 Subject: [PATCH] IJPL-930 Remove usage of getOrderEntriesForFile from JdkUtils GitOrigin-RevId: dd0ed191c98cafe869657dbbe503e19a80ef2822 --- java/java-analysis-api/BUILD.bazel | 2 ++ java/java-analysis-api/intellij.java.analysis.iml | 2 ++ .../src/com/intellij/openapi/roots/JdkUtils.java | 14 +++++++------- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/java/java-analysis-api/BUILD.bazel b/java/java-analysis-api/BUILD.bazel index 2329b04bcd1c..444e58db128f 100644 --- a/java/java-analysis-api/BUILD.bazel +++ b/java/java-analysis-api/BUILD.bazel @@ -30,6 +30,8 @@ jvm_library( "@lib//:kotlin-stdlib", "//uast/uast-common:uast", "//uast/uast-common-ide:ide", + "//platform/workspace/jps", + "//platform/workspace/storage", ], exports = [ "//uast/uast-common:uast", diff --git a/java/java-analysis-api/intellij.java.analysis.iml b/java/java-analysis-api/intellij.java.analysis.iml index 062ca60df03a..afa8572ea9e6 100644 --- a/java/java-analysis-api/intellij.java.analysis.iml +++ b/java/java-analysis-api/intellij.java.analysis.iml @@ -33,5 +33,7 @@ + + \ No newline at end of file diff --git a/java/java-analysis-api/src/com/intellij/openapi/roots/JdkUtils.java b/java/java-analysis-api/src/com/intellij/openapi/roots/JdkUtils.java index 260756726492..8665e47dbd60 100644 --- a/java/java-analysis-api/src/com/intellij/openapi/roots/JdkUtils.java +++ b/java/java-analysis-api/src/com/intellij/openapi/roots/JdkUtils.java @@ -1,24 +1,24 @@ // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.openapi.roots; +import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.platform.workspace.jps.entities.SdkEntity; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiUtilCore; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public final class JdkUtils { public static @Nullable Sdk getJdkForElement(@NotNull PsiElement element) { final VirtualFile virtualFile = PsiUtilCore.getVirtualFile(element); if (virtualFile == null) return null; - final List entries = ProjectRootManager.getInstance(element.getProject()).getFileIndex().getOrderEntriesForFile(virtualFile); - for (OrderEntry orderEntry : entries) { - if (orderEntry instanceof JdkOrderEntry entry) { - Sdk jdk = entry.getJdk(); - if (jdk != null) return jdk; + var jdks = ProjectRootManager.getInstance(element.getProject()).getFileIndex().findContainingSdks(virtualFile); + for (SdkEntity jdk : jdks) { + var sdkBridge = ProjectJdkTable.getInstance(element.getProject()).findJdk(jdk.getName()); + if (sdkBridge != null) { + return sdkBridge; } } return null;