diff --git a/platform/util/src/com/intellij/util/lang/JavaVersion.java b/platform/util/src/com/intellij/util/lang/JavaVersion.java index 76d70e2ba3c4..dc93a570ffe7 100644 --- a/platform/util/src/com/intellij/util/lang/JavaVersion.java +++ b/platform/util/src/com/intellij/util/lang/JavaVersion.java @@ -130,6 +130,8 @@ public final class JavaVersion { return current; } + private static final int MAX_ACCEPTED_VERSION = 25; // sanity check + /** *

Parses a Java version string.

* @@ -170,7 +172,7 @@ public final class JavaVersion { int feature = Integer.parseInt(numbers.get(0)), minor = 0, update = 0, build = 0; boolean ea = false; - if (feature > 8 && feature < 50 /*sanity check*/) { + if (feature > 8 && feature < MAX_ACCEPTED_VERSION) { // Java 9+ p = 1; while (p < separators.size() && ".".equals(separators.get(p))) p++; @@ -196,7 +198,7 @@ public final class JavaVersion { else if (feature == 1 && numbers.size() > 1 && separators.size() > 1 && ".".equals(separators.get(1))) { // Java 1.0 .. 1.8 feature = Integer.parseInt(numbers.get(1)); - if (feature <= 8) { + if (feature <= MAX_ACCEPTED_VERSION) { if (numbers.size() > 2 && separators.size() > 2 && ".".equals(separators.get(2))) { minor = Integer.parseInt(numbers.get(2)); if (numbers.size() > 3 && separators.size() > 3 && "_".equals(separators.get(3))) { diff --git a/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt b/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt index 5ac0cee7cc50..b0a9193c3561 100644 --- a/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt +++ b/platform/util/testSrc/com/intellij/util/lang/JavaVersionTest.kt @@ -23,6 +23,7 @@ class JavaVersionTest { @Test fun `1_8_0_45-internal`() = doTest("1.8.0_45-internal", 8, 0, 45, 0, true) @Test fun `1_8_0_121-2-whatever-b11`() = doTest("1.8.0_121-2-whatever-b11", 8, 0, 121, 11) @Test fun `1_8_0_121-(big-number)-b11`() = doTest("1.8.0_121-99${Long.MAX_VALUE}-b11", 8, 0, 121, 11) + @Test fun `1_10`() = doTest("1.10", 10) @Test fun `9`() = doTest("9", 9) @Test fun `9-ea`() = doTest("9-ea", 9, 0, 0, 0, true)