This is an automated email from the ASF dual-hosted git repository.

emilles pushed a commit to branch GROOVY_5_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/GROOVY_5_0_X by this push:
     new a2695cebad GROOVY-11789: do not re-add fatal javac error to 
`ErrorCollector`
a2695cebad is described below

commit a2695cebad68f8bb1a2b5578b98e57c34e3e8ce5
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 ef7835e820..240690a416 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 773b081701..6cfd34ee11 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 149e17b30e..15b7653401 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
@@ -37,6 +37,7 @@ import java.nio.file.Paths;
 import java.util.regex.Pattern;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
@@ -358,4 +359,11 @@ final class GroovycTest {
         project.executeTarget("incrementalCompilation");
         ensureResultOK("GroovycTest3");
     }
+
+    // GROOVY-11789
+    @Test
+    void testBadJavacArgument() {
+        var e = assertThrows(BuildException.class, () -> 
project.executeTarget("badJavacArgument"));
+        assertTrue(e.getCause().getMessage().contains("invalid flag: 
-Xlint:xxx"));
+    }
 }

Reply via email to