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

Reply via email to