Don't forget to configure JdkHome for CompilerConfiguration

Review: https://jetbrains.team/p/kt/reviews/9562

This commit fixes IdeaJsr223Test in kotlin plugin. The test failure was
caused by b50a803b6f commit where we
dropped `put(JVMConfigurationKeys.JDK_HOME, ...)` from
`configureJdkClasspathRoots`. Ilya Chernikov says that it's incorrect to
set JDK_HOME in `configureJdkClasspathRoots`.

To reproduce the test failure:
1. Update `.idea/libraries/kotlinc_kotlin_dist.xml` and
   `.idea/libraries/kotlinc_kotlin_jps_plugin_classpath.xml` with new
   Kotlin (in other words: bump bundled JPS)
2. Run the test

Test failure stacktrace:
```
javax.script.ScriptException: error: cannot access 'java.io.Serializable' which is a supertype of 'kotlin.Int'. Check your module classpath for missing or conflicting dependencies
y.first() + 2
          ^
  at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.asJsr223EvalResult(KotlinJsr223JvmScriptEngineBase.kt:104)
  at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.compileAndEval(KotlinJsr223JvmScriptEngineBase.kt:63)
  at org.jetbrains.kotlin.cli.common.repl.KotlinJsr223JvmScriptEngineBase.eval(KotlinJsr223JvmScriptEngineBase.kt:31)
  at java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:262)
  at org.jetbrains.kotlin.idea.repl.IdeaJsr223Test.testJsr223Engine(IdeaJsr223Test.kt:31)
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.base/java.lang.reflect.Method.invoke(Method.java:568)
  at junit.framework.TestCase.runTest(TestCase.java:177)
  at com.intellij.testFramework.UsefulTestCase.lambda$runBare$11(UsefulTestCase.java:479)
  at com.intellij.testFramework.UsefulTestCase.lambda$wrapTestRunnable$13(UsefulTestCase.java:500)
```
This commit is contained in:
Nikita Bobko
2023-04-11 14:27:08 +02:00
committed by Space Team
parent aab1959cc4
commit 9ca7ee3b97
2 changed files with 12 additions and 6 deletions
@@ -164,14 +164,18 @@ fun CompilerConfiguration.configureJdkHome(arguments: K2JVMCompilerArguments): B
messageCollector.report(LOGGING, "Using JDK home directory $jdkHome")
put(JVMConfigurationKeys.JDK_HOME, jdkHome)
} else {
val javaHome = File(System.getProperty("java.home"))
messageCollector.report(LOGGING, "Using JDK home inferred from java.home: $javaHome")
put(JVMConfigurationKeys.JDK_HOME, javaHome)
configureJdkHomeFromSystemProperty()
}
return true
}
fun CompilerConfiguration.configureJdkHomeFromSystemProperty() {
val javaHome = File(System.getProperty("java.home"))
messageCollector.report(LOGGING, "Using JDK home inferred from java.home: $javaHome")
put(JVMConfigurationKeys.JDK_HOME, javaHome)
}
fun CompilerConfiguration.configureJavaModulesContentRoots(arguments: K2JVMCompilerArguments) {
for (modularRoot in arguments.javaModulePath.orEmpty()) {
add(CLIConfigurationKeys.CONTENT_ROOTS, JvmModulePathRoot(File(modularRoot)))