This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_3_0_X by this push:
new f0d5306336 GROOVY-11789: do not re-add fatal javac error to
`ErrorCollector`
f0d5306336 is described below
commit f0d53063368e2ea5eee90fc8cf2a627adfec3a4b
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 | 10 ++++++++++
3 files changed, 27 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 a31fe2d37c..35e310ab09 100644
--- a/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/javac/JavacJavaCompiler.java
@@ -62,18 +62,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 32e258bdf6..057019fece 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
@@ -200,6 +200,15 @@
<java classname="org.codehaus.groovy.ant.GroovycTest1"/>
</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 6e2f1554ca..95fbb55618 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
@@ -319,4 +319,14 @@ public class GroovycTest extends GroovyTestCase {
ensureExecutes("plainForkedCompilation_NestingSrcElementCheck");
ensureNotPresent("GroovycTest2"); // excluded from src > fileset
}
+
+ // GROOVY-11789
+ public void testBadJavacArgument() {
+ try {
+ project.executeTarget("badJavacArgument");
+ fail("BuildException expected");
+ } catch (BuildException e) {
+ assertTrue(e.getCause().getMessage().contains("invalid flag:
-Xlint:xxx"));
+ }
+ }
}