Skip to content

Commit d2b28ce

Browse files
committed
Don't add -Xverify:none to JVM args when running on Java 13
Closes spring-projectsgh-17008
1 parent ce2c26e commit d2b28ce

File tree

2 files changed

+30
-2
lines changed
  • spring-boot-project/spring-boot-tools
    • spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/run
    • spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven

2 files changed

+30
-2
lines changed

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/run/BootRun.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package org.springframework.boot.gradle.tasks.run;
1818

19+
import java.lang.reflect.Method;
20+
21+
import org.gradle.api.JavaVersion;
1922
import org.gradle.api.file.SourceDirectorySet;
2023
import org.gradle.api.tasks.Input;
2124
import org.gradle.api.tasks.JavaExec;
@@ -69,7 +72,11 @@ public void sourceResources(SourceSet sourceSet) {
6972
public void exec() {
7073
if (this.optimizedLaunch) {
7174
setJvmArgs(getJvmArgs());
72-
jvmArgs("-Xverify:none", "-XX:TieredStopAtLevel=1");
75+
JavaVersion.current();
76+
if (!isJava13OrLater()) {
77+
jvmArgs("-Xverify:none");
78+
}
79+
jvmArgs("-XX:TieredStopAtLevel=1");
7380
}
7481
if (System.console() != null) {
7582
// Record that the console is available here for AnsiOutput to detect later
@@ -78,4 +85,13 @@ public void exec() {
7885
super.exec();
7986
}
8087

88+
private boolean isJava13OrLater() {
89+
for (Method method : String.class.getMethods()) {
90+
if (method.getName().equals("stripIndent")) {
91+
return true;
92+
}
93+
}
94+
return false;
95+
}
96+
8197
}

spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package org.springframework.boot.maven;
1818

1919
import java.io.File;
20+
import java.lang.reflect.Method;
2021
import java.net.URL;
2122
import java.net.URLClassLoader;
2223
import java.util.List;
@@ -81,11 +82,22 @@ protected RunArguments resolveJvmArguments() {
8182
RunArguments jvmArguments = super.resolveJvmArguments();
8283
if (isFork() && this.optimizedLaunch) {
8384
jvmArguments.getArgs().addFirst("-XX:TieredStopAtLevel=1");
84-
jvmArguments.getArgs().addFirst("-Xverify:none");
85+
if (!isJava13OrLater()) {
86+
jvmArguments.getArgs().addFirst("-Xverify:none");
87+
}
8588
}
8689
return jvmArguments;
8790
}
8891

92+
private boolean isJava13OrLater() {
93+
for (Method method : String.class.getMethods()) {
94+
if (method.getName().equals("stripIndent")) {
95+
return true;
96+
}
97+
}
98+
return false;
99+
}
100+
89101
@Override
90102
protected void runWithForkedJvm(File workingDirectory, List<String> args, Map<String, String> environmentVariables)
91103
throws MojoExecutionException {

0 commit comments

Comments
 (0)