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

Abacn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 1847eac2d85 Follow up fix fork comiple errors (#40620)
1847eac2d85 is described below

commit 1847eac2d85591ba29f1ae118be5532a40c83a50
Author: Yi Hu <[email protected]>
AuthorDate: Thu Oct 15 17:04:08 2026 -0400

    Follow up fix fork comiple errors (#40620)
    
    * Partly revert #40595: setCompileAndRuntimeJavaVersion logic wasn't stale
      it's needed to resolve errorprone x Gradle known issue compatibility
    
    * Clean up Java8 leftovers in setJavaVerOptions.
---
 .../org/apache/beam/gradle/BeamModulePlugin.groovy | 61 ++++++++++------------
 1 file changed, 29 insertions(+), 32 deletions(-)

diff --git 
a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy 
b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
index 6550dbd843b..d699f9efab9 100644
--- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
@@ -482,19 +482,33 @@ class BeamModulePlugin implements Plugin<Project> {
   /*
    * Set compile args for compiling and running in different java version by 
modifying the compiler args in place.
    *
-   * Replace `--release X` option if already existed in compilerArgs.
+   * Replace `-source X` and `-target X` or `--release X` options if already 
existed in compilerArgs.
    */
   static def setCompileAndRuntimeJavaVersion(List<String> compilerArgs, String 
ver) {
-    boolean foundR = false
+    boolean foundS = false, foundT = false
+    int foundR = -1
     logger.fine("set java ver ${ver} to compiler args")
-    for (int i = 0; i < compilerArgs.size() - 1; ++i) {
-      if (compilerArgs.get(i) == '--release') {
-        foundR = true
-        compilerArgs.set(i + 1, ver)
+    for (int i = 0; i < compilerArgs.size()-1; ++i) {
+      if (compilerArgs.get(i) == '-source') {
+        foundS = true
+        compilerArgs.set(i+1, ver)
+      } else if (compilerArgs.get(i) == '-target')  {
+        foundT = true
+        compilerArgs.set(i+1, ver)
+      } else if (compilerArgs.get(i) == '--release') {
+        foundR = i
       }
     }
-    if (!foundR) {
-      compilerArgs.addAll('--release', ver)
+    // Remove "--release" and replace with '-source -target' due to errorprone 
compatibility and Gradle issue #22747
+    if (foundR != -1) {
+      compilerArgs.removeAt(foundR + 1)
+      compilerArgs.removeAt(foundR)
+    }
+    if (!foundS) {
+      compilerArgs.addAll('-source', ver)
+    }
+    if (!foundT) {
+      compilerArgs.addAll('-target', ver)
     }
   }
 
@@ -994,7 +1008,8 @@ class BeamModulePlugin implements Plugin<Project> {
 
     // set compiler options for java version overrides to compile with a 
different java version
     project.ext.setJavaVerOptions = { CompileOptions options, String ver ->
-      if (!project.findProperty("java${ver}Home")) {
+      def javaVerHome = project.findProperty("java${ver}Home")
+      if (!javaVerHome) {
         return
       }
       // TODO(yathu): remove this once generated code (antlr) no longer 
trigger "this-escape", see above
@@ -1004,31 +1019,12 @@ class BeamModulePlugin implements Plugin<Project> {
           '-Xlint:-this-escape',
         ]
       }
-      if (ver == '8') {
-        def java8Home = project.findProperty("java8Home")
-        options.fork = true
-        options.forkOptions.javaHome = java8Home as File
-        options.compilerArgs += ['-Xlint:-path']
-      } else if (ver == '11') {
-        def java11Home = project.findProperty("java11Home")
-        options.fork = true
-        options.forkOptions.javaHome = java11Home as File
-        options.compilerArgs += ['-Xlint:-path']
-      } else if (ver == '17') {
-        def java17Home = project.findProperty("java17Home")
-        options.fork = true
-        options.forkOptions.javaHome = java17Home as File
-        options.compilerArgs += ['-Xlint:-path']
-        // The -J prefix is needed to workaround 
https://github.com/gradle/gradle/issues/22747
+      options.fork = true
+      options.forkOptions.javaHome = javaVerHome as File
+      if (ver == '17') {
         options.forkOptions.jvmArgs += errorProneAddModuleOpts.collect { '-J' 
+ it }
       } else if (ver == '21' || ver == '25') {
-        def javaVerHome = project.findProperty("java${ver}Home")
-        options.fork = true
-        options.forkOptions.javaHome = javaVerHome as File
-        options.compilerArgs += [
-          '-Xlint:-path',
-          '-Xlint:-this-escape'
-        ]
+        options.compilerArgs += ['-Xlint:-this-escape']
         if (ver == '25') {
          // TODO: Upgrade errorprone and checkerFramework when Beam move to 
Java17+ and enable it in Java 25+
           options.errorprone.errorproneArgs.add("-XepDisableAllChecks")
@@ -1208,6 +1204,7 @@ class BeamModulePlugin implements Plugin<Project> {
         'classfile',
         'deprecation',
         'fallthrough',
+        'path',
         'processing',
         'serial',
         'try',

Reply via email to