From c41dd13c9921deacbe54f77d156b23c841fd4e0a Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Fri, 14 Jun 2024 17:01:47 +0200 Subject: [PATCH] Avoid NumberFormatException for Java 1.8 I had to update a very old Quarkus project that was having 1.8 as a maven.compiler.target and this led to an error that is less than ideal. This will make you go a bit further and get a proper message saying Java 1.8 is not supported. --- .../main/java/io/quarkus/devtools/project/JavaVersion.java | 6 +++++- .../java/io/quarkus/devtools/project/JavaVersionTest.java | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/JavaVersion.java b/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/JavaVersion.java index cd3ba46ea4453..d443bc65b04ec 100644 --- a/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/JavaVersion.java +++ b/independent-projects/tools/devtools-common/src/main/java/io/quarkus/devtools/project/JavaVersion.java @@ -19,7 +19,11 @@ private JavaVersion() { } public JavaVersion(String version) { - this.version = version; + if (version != null && version.startsWith("1.")) { + this.version = version.substring(2); + } else { + this.version = version; + } } public boolean isEmpty() { diff --git a/independent-projects/tools/devtools-common/src/test/java/io/quarkus/devtools/project/JavaVersionTest.java b/independent-projects/tools/devtools-common/src/test/java/io/quarkus/devtools/project/JavaVersionTest.java index 0b982913ff880..329801653dac8 100644 --- a/independent-projects/tools/devtools-common/src/test/java/io/quarkus/devtools/project/JavaVersionTest.java +++ b/independent-projects/tools/devtools-common/src/test/java/io/quarkus/devtools/project/JavaVersionTest.java @@ -14,6 +14,12 @@ class JavaVersionTest { + @Test + public void givenJavaVersion8ShouldReturn8() { + assertEquals(8, new JavaVersion("8").getAsInt()); + assertEquals(8, new JavaVersion("1.8").getAsInt()); + } + @Test public void givenJavaVersion17ShouldReturn17() { assertEquals("17", computeJavaVersion(JAVA, "17"));