Commit d2b28ceb authored by Andy Wilkinson's avatar Andy Wilkinson

Don't add -Xverify:none to JVM args when running on Java 13

Closes gh-17008
parent ce2c26e9
...@@ -16,6 +16,9 @@ ...@@ -16,6 +16,9 @@
package org.springframework.boot.gradle.tasks.run; package org.springframework.boot.gradle.tasks.run;
import java.lang.reflect.Method;
import org.gradle.api.JavaVersion;
import org.gradle.api.file.SourceDirectorySet; import org.gradle.api.file.SourceDirectorySet;
import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.JavaExec;
...@@ -69,7 +72,11 @@ public class BootRun extends JavaExec { ...@@ -69,7 +72,11 @@ public class BootRun extends JavaExec {
public void exec() { public void exec() {
if (this.optimizedLaunch) { if (this.optimizedLaunch) {
setJvmArgs(getJvmArgs()); setJvmArgs(getJvmArgs());
jvmArgs("-Xverify:none", "-XX:TieredStopAtLevel=1"); JavaVersion.current();
if (!isJava13OrLater()) {
jvmArgs("-Xverify:none");
}
jvmArgs("-XX:TieredStopAtLevel=1");
} }
if (System.console() != null) { if (System.console() != null) {
// Record that the console is available here for AnsiOutput to detect later // Record that the console is available here for AnsiOutput to detect later
...@@ -78,4 +85,13 @@ public class BootRun extends JavaExec { ...@@ -78,4 +85,13 @@ public class BootRun extends JavaExec {
super.exec(); super.exec();
} }
private boolean isJava13OrLater() {
for (Method method : String.class.getMethods()) {
if (method.getName().equals("stripIndent")) {
return true;
}
}
return false;
}
} }
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
package org.springframework.boot.maven; package org.springframework.boot.maven;
import java.io.File; import java.io.File;
import java.lang.reflect.Method;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.List; import java.util.List;
...@@ -81,11 +82,22 @@ public class RunMojo extends AbstractRunMojo { ...@@ -81,11 +82,22 @@ public class RunMojo extends AbstractRunMojo {
RunArguments jvmArguments = super.resolveJvmArguments(); RunArguments jvmArguments = super.resolveJvmArguments();
if (isFork() && this.optimizedLaunch) { if (isFork() && this.optimizedLaunch) {
jvmArguments.getArgs().addFirst("-XX:TieredStopAtLevel=1"); jvmArguments.getArgs().addFirst("-XX:TieredStopAtLevel=1");
jvmArguments.getArgs().addFirst("-Xverify:none"); if (!isJava13OrLater()) {
jvmArguments.getArgs().addFirst("-Xverify:none");
}
} }
return jvmArguments; return jvmArguments;
} }
private boolean isJava13OrLater() {
for (Method method : String.class.getMethods()) {
if (method.getName().equals("stripIndent")) {
return true;
}
}
return false;
}
@Override @Override
protected void runWithForkedJvm(File workingDirectory, List<String> args, Map<String, String> environmentVariables) protected void runWithForkedJvm(File workingDirectory, List<String> args, Map<String, String> environmentVariables)
throws MojoExecutionException { throws MojoExecutionException {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment