mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] ignores incomplete version strings for JDKs defined programmatically (IDEA-203014)
This commit is contained in:
@@ -331,7 +331,9 @@ public class JavaSdkImpl extends JavaSdk {
|
||||
|
||||
String path = home.replace(File.separatorChar, '/');
|
||||
sdkModificator.setHomePath(path);
|
||||
sdkModificator.setVersionString(jdkName); // must be set after home path, otherwise setting home path clears the version string
|
||||
if (JdkVersionDetector.isVersionString(jdkName)) {
|
||||
sdkModificator.setVersionString(jdkName); // must be set after home path, otherwise setting home path clears the version string
|
||||
}
|
||||
|
||||
File jdkHomeFile = new File(home);
|
||||
addClasses(jdkHomeFile, sdkModificator, isJre);
|
||||
|
||||
+11
-2
@@ -3,10 +3,11 @@ package com.intellij.java.openapi.projectRoots;
|
||||
|
||||
import com.intellij.openapi.projectRoots.JavaSdkVersion;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.util.lang.JavaVersion;
|
||||
import org.jetbrains.jps.model.java.JdkVersionDetector;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class JavaSdkVersionTest {
|
||||
@Test
|
||||
@@ -37,4 +38,12 @@ public class JavaSdkVersionTest {
|
||||
assertEquals(JavaSdkVersion.JDK_1_9, JavaSdkVersion.fromVersionString("java version \"9-ea\""));
|
||||
assertEquals(JavaSdkVersion.JDK_1_9, JavaSdkVersion.fromVersionString("java version \"9.1.2\""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void versionStringDetectorSanity() {
|
||||
assertTrue(JdkVersionDetector.isVersionString("java version \"9\""));
|
||||
assertFalse(JdkVersionDetector.isVersionString("java version \"\""));
|
||||
|
||||
assertTrue(JdkVersionDetector.isVersionString(JdkVersionDetector.formatVersionString(JavaVersion.compose(9))));
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,8 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
*/
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.model.java;
|
||||
|
||||
import com.intellij.openapi.util.Bitness;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.lang.JavaVersion;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -76,4 +75,8 @@ public abstract class JdkVersionDetector {
|
||||
public static String formatVersionString(@NotNull JavaVersion version) {
|
||||
return "java version \"" + version + '"';
|
||||
}
|
||||
|
||||
public static boolean isVersionString(@NotNull String string) {
|
||||
return string.length() >= 16 && string.startsWith("java version \"") && StringUtil.endsWithChar(string, '"');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user