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;