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"));
+    }
 }

Reply via email to