This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
new 8c47bd4195 GROOVY-11789: do not re-add fatal javac error to
`ErrorCollector`
8c47bd4195 is described below
commit 8c47bd41957bc8338555e8737064b5b902f66a48
Author: Eric Milles <[email protected]>
AuthorDate: Mon Oct 20 12:57:15 2025 -0500
GROOVY-11789: do not re-add fatal javac error to `ErrorCollector`
---
.../codehaus/groovy/tools/javac/JavacJavaCompiler.java | 18 ++++++++----------
.../org/codehaus/groovy/ant/GroovycTest.xml | 9 +++++++++
.../groovy/org/codehaus/groovy/ant/GroovycTest.java | 8 ++++++++
3 files changed, 25 insertions(+), 10 deletions(-)
diff --git
a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
index c49dc2bc5e..3aa9d8ce68 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -64,18 +64,16 @@ public class JavacJavaCompiler implements JavaCompiler {
StringBuilderWriter javacOutput = new StringBuilderWriter();
int javacReturnValue = 0;
try {
- try {
- boolean successful = doCompileWithSystemJavaCompiler(cu,
files, javacParameters, javacOutput);
- if (!successful) {
- javacReturnValue = 1;
- }
- } catch (IllegalArgumentException e) {
- javacReturnValue = 2; // any of the options are invalid
- cu.getErrorCollector().addFatalError(new ExceptionMessage(e,
true, cu));
- } catch (IOException e) {
+ boolean successful = doCompileWithSystemJavaCompiler(cu, files,
javacParameters, javacOutput);
+ if (!successful) {
javacReturnValue = 1;
- cu.getErrorCollector().addFatalError(new ExceptionMessage(e,
true, cu));
}
+ } catch (IllegalArgumentException e) {
+ javacReturnValue = 2; // any of the options are invalid
+ cu.getErrorCollector().addFatalError(new ExceptionMessage(e, true,
cu));
+ } catch (IOException e) {
+ javacReturnValue = 1;
+ cu.getErrorCollector().addFatalError(new ExceptionMessage(e, true,
cu));
} catch (Exception e) {
cu.getErrorCollector().addFatalError(new ExceptionMessage(e, true,
cu));
}
diff --git
a/subprojects/groovy-ant/src/test-resources/org/codehaus/groovy/ant/GroovycTest.xml
b/subprojects/groovy-ant/src/test-resources/org/codehaus/groovy/ant/GroovycTest.xml
index 177ca5d106..add587ab61 100644
---
a/subprojects/groovy-ant/src/test-resources/org/codehaus/groovy/ant/GroovycTest.xml
+++
b/subprojects/groovy-ant/src/test-resources/org/codehaus/groovy/ant/GroovycTest.xml
@@ -217,6 +217,15 @@
<java classname="org.codehaus.groovy.ant.GroovycTest3"/>
</target>
+ <!-- GROOVY-11789 -->
+ <target name="badJavacArgument">
+ <compile-joint includes="**/GroovycTest2.java">
+ <javac>
+ <compilerarg value="-Xlint:xxx"/>
+ </javac>
+ </compile-joint>
+ </target>
+
<target name="clean">
<delete quiet="true">
<fileset dir="${destPath}/org/codehaus/groovy/ant">
diff --git
a/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
b/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
index 1808e3db6d..d32f0dc24e 100644
---
a/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
+++
b/subprojects/groovy-ant/src/test/groovy/org/codehaus/groovy/ant/GroovycTest.java
@@ -39,6 +39,7 @@ import java.util.regex.Pattern;
import static groovy.test.GroovyAssert.isAtLeastJdk;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeFalse;
@@ -368,4 +369,11 @@ public final class GroovycTest {
project.executeTarget("incrementalCompilation");
ensureResultOK("GroovycTest3");
}
+
+ // GROOVY-11789
+ @Test
+ public void testBadJavacArgument() {
+ Exception e = assertThrows(BuildException.class, () ->
project.executeTarget("badJavacArgument"));
+ assertTrue(e.getCause().getMessage().contains("invalid flag:
-Xlint:xxx"));
+ }
}