From aac25de91c3301f445445dea835cdfe5f9121891 Mon Sep 17 00:00:00 2001 From: jkf Date: Sun, 25 Aug 2019 11:42:58 +0200 Subject: [PATCH] Fixed regression on javac version selection in case build.compiler property is set. --- .../compilers/DefaultCompilerAdapter.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java index c996e384b..ec2d9d886 100644 --- a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java +++ b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java @@ -796,8 +796,7 @@ public abstract class DefaultCompilerAdapter */ @Deprecated protected boolean assumeJava9() { - return assumeJavaXY("javac1.9", JavaEnvUtils.JAVA_9) - || assumeJavaXY("javac9", JavaEnvUtils.JAVA_9); + return assumeJava9Plus() && !assumeJava10Plus(); } /** @@ -806,9 +805,9 @@ public abstract class DefaultCompilerAdapter * @since Ant 1.10.2 */ protected boolean assumeJava9Plus() { - return "javac1.9".equals(attributes.getCompilerVersion()) - || "javac9".equals(attributes.getCompilerVersion()) - || assumeJava10Plus(); + return assumeJavaXY("javac1.9", JavaEnvUtils.JAVA_9) + || assumeJavaXY("javac9", JavaEnvUtils.JAVA_9) + || assumeJava10Plus(); } /** @@ -817,7 +816,11 @@ public abstract class DefaultCompilerAdapter * @since Ant 1.10.7 */ protected boolean assumeJava10Plus() { - return "javac10+".equals(attributes.getCompilerVersion()); + return "javac10+".equals(attributes.getCompilerVersion()) + || (JavaEnvUtils.isAtLeastJavaVersion(JavaEnvUtils.JAVA_10) + && ("classic".equals(attributes.getCompilerVersion()) + || "modern".equals(attributes.getCompilerVersion()) + || "extJavac".equals(attributes.getCompilerVersion()))); } /** @@ -825,7 +828,12 @@ public abstract class DefaultCompilerAdapter * @since Ant 1.8.3 */ private boolean assumeJavaXY(final String javacXY, final String javaEnvVersionXY) { - return javacXY.equals(attributes.getCompilerVersion()); + String compilerVersion = attributes.getCompilerVersion(); + return javacXY.equals(compilerVersion) || + (JavaEnvUtils.isJavaVersion(javaEnvVersionXY) + && ("classic".equals(compilerVersion) + || "modern".equals(compilerVersion) + || "extJavac".equals(compilerVersion))); } /**