You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by yh...@apache.org on 2026/07/13 14:37:36 UTC

(beam) branch master updated: Add JVM --add-opens flags for Flink PVR on Java 21 (#39303)

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 f20fca2d9e4 Add JVM --add-opens flags for Flink PVR on Java 21 (#39303)
f20fca2d9e4 is described below

commit f20fca2d9e44e9d246b06c5654a89d1c129071df
Author: Abdelrahman Ibrahim <ab...@gmail.com>
AuthorDate: Mon Jul 13 17:37:28 2026 +0300

    Add JVM --add-opens flags for Flink PVR on Java 21 (#39303)
---
 .../beam_PostCommit_Java_PVR_Flink_Streaming.json  |  2 +-
 runners/flink/job-server/flink_job_server.gradle   | 25 +++++++++++++++++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/.github/trigger_files/beam_PostCommit_Java_PVR_Flink_Streaming.json b/.github/trigger_files/beam_PostCommit_Java_PVR_Flink_Streaming.json
index 2dd3a2471d8..d7f4c03aaf5 100644
--- a/.github/trigger_files/beam_PostCommit_Java_PVR_Flink_Streaming.json
+++ b/.github/trigger_files/beam_PostCommit_Java_PVR_Flink_Streaming.json
@@ -1,5 +1,5 @@
 {
   "comment": "Modify this file in a trivial way to cause this test suite to run",
-  "modification": 1,
+  "modification": 2,
   "https://github.com/apache/beam/pull/32440": "test new datastream runner for batch"
 }
diff --git a/runners/flink/job-server/flink_job_server.gradle b/runners/flink/job-server/flink_job_server.gradle
index a6abca5e858..46b1b5a607f 100644
--- a/runners/flink/job-server/flink_job_server.gradle
+++ b/runners/flink/job-server/flink_job_server.gradle
@@ -239,6 +239,27 @@ tasks.register("validatesPortableRunner") {
   dependsOn validatesPortableRunnerStreamingCheckpoint
 }
 
+def flinkJobServerJvmArgs() {
+  def testJavaVer = project.findProperty('testJavaVersion') ? (project.property('testJavaVersion') as int) : JavaVersion.current().majorVersion.toInteger()
+  if (testJavaVer >= 17) {
+    return [
+      "--add-opens=java.base/sun.nio.ch=ALL-UNNAMED",
+      "--add-opens=java.base/java.nio=ALL-UNNAMED",
+      "--add-opens=java.base/java.util=ALL-UNNAMED",
+      "--add-opens=java.base/java.lang.invoke=ALL-UNNAMED",
+      "--add-opens=java.base/java.lang=ALL-UNNAMED",
+      "-Djava.security.manager=allow",
+    ]
+  }
+  return []
+}
+
+[validatesPortableRunnerDocker, validatesPortableRunnerBatchDataSet, validatesPortableRunnerBatch, validatesPortableRunnerStreaming, validatesPortableRunnerStreamingCheckpoint].each { task ->
+  task.configure {
+    jvmArgs += flinkJobServerJvmArgs()
+  }
+}
+
 def jobPort = BeamModulePlugin.getRandomPort()
 def artifactPort = BeamModulePlugin.getRandomPort()
 
@@ -270,7 +291,9 @@ def setupTask = project.tasks.register("flinkJobServerSetup", Exec) {
   }
 
   executable 'sh'
-  args '-c', "$pythonDir/scripts/run_job_server.sh stop --group_id ${project.name} && $pythonDir/scripts/run_job_server.sh start --group_id ${project.name} --job_port ${jobPort} --artifact_port ${artifactPort} --job_server_jar ${flinkJobServerJar} --additional_args \"${additionalArgs}\""
+  def jvmArgs = flinkJobServerJvmArgs().join(' ')
+  def jvmArgsOpt = jvmArgs ? "--jvm_args \"${jvmArgs}\"" : ""
+  args '-c', "$pythonDir/scripts/run_job_server.sh stop --group_id ${project.name} && $pythonDir/scripts/run_job_server.sh start --group_id ${project.name} --job_port ${jobPort} --artifact_port ${artifactPort} --job_server_jar ${flinkJobServerJar} --additional_args \"${additionalArgs}\" ${jvmArgsOpt}"
 }
 
 def cleanupTask = project.tasks.register("flinkJobServerCleanup", Exec) {