diff --git a/build.xml b/build.xml index c6cd889a3..7d19b7e75 100644 --- a/build.xml +++ b/build.xml @@ -374,28 +374,6 @@ - - - - - - - - - - - - - - - - @@ -701,7 +680,7 @@ - + @@ -1406,15 +1385,16 @@ - - + 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 1a4edbf76..8fbfb3bac 100644 --- a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java +++ b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java @@ -297,7 +297,15 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { setupJavacCommandlineSwitches(cmd, true); if (attributes.getSource() != null && !assumeJava13()) { cmd.createArgument().setValue("-source"); - cmd.createArgument().setValue(attributes.getSource()); + String source = attributes.getSource(); + if (assumeJava14() && + (source.equals("1.1") || source.equals("1.2"))) { + // support for -source 1.1 and -source 1.2 has been + // added with JDK 1.4.2 + cmd.createArgument().setValue("1.3"); + } else { + cmd.createArgument().setValue(source); + } } return cmd; } @@ -501,5 +509,19 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter { && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_3)); } + /** + * Shall we assume JDK 1.4 command line switches? + * @since Ant 1.6.3 + */ + protected boolean assumeJava14() { + return "javac1.4".equals(attributes.getCompilerVersion()) + || ("classic".equals(attributes.getCompilerVersion()) + && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_4)) + || ("modern".equals(attributes.getCompilerVersion()) + && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_4)) + || ("extJavac".equals(attributes.getCompilerVersion()) + && JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_4)); + } + }