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 48eab4f5262 Add Spark JVM --add-opens for (Nexmark, TPC-DS, 
PortableJar) (#39337)
48eab4f5262 is described below

commit 48eab4f526289a49e1483a3935b758a6b9f84a19
Author: Abdelrahman Ibrahim <[email protected]>
AuthorDate: Wed Jul 15 15:27:09 2026 +0300

    Add Spark JVM --add-opens for (Nexmark, TPC-DS, PortableJar) (#39337)
---
 .../trigger_files/beam_PostCommit_Java_Nexmark_Spark.json  |  4 ++++
 .../trigger_files/beam_PostCommit_Java_Tpcds_Spark.json    |  4 ++++
 .../trigger_files/beam_PostCommit_PortableJar_Spark.json   |  4 ++++
 runners/portability/test_pipeline_jar.sh                   | 11 ++++++++++-
 sdks/java/testing/nexmark/build.gradle                     | 14 ++++++++++++++
 sdks/java/testing/tpcds/build.gradle                       | 14 ++++++++++++++
 6 files changed, 50 insertions(+), 1 deletion(-)

diff --git a/.github/trigger_files/beam_PostCommit_Java_Nexmark_Spark.json 
b/.github/trigger_files/beam_PostCommit_Java_Nexmark_Spark.json
new file mode 100644
index 00000000000..e3d6056a5de
--- /dev/null
+++ b/.github/trigger_files/beam_PostCommit_Java_Nexmark_Spark.json
@@ -0,0 +1,4 @@
+{
+  "comment": "Modify this file in a trivial way to cause this test suite to 
run",
+  "modification": 1
+}
diff --git a/.github/trigger_files/beam_PostCommit_Java_Tpcds_Spark.json 
b/.github/trigger_files/beam_PostCommit_Java_Tpcds_Spark.json
new file mode 100644
index 00000000000..e3d6056a5de
--- /dev/null
+++ b/.github/trigger_files/beam_PostCommit_Java_Tpcds_Spark.json
@@ -0,0 +1,4 @@
+{
+  "comment": "Modify this file in a trivial way to cause this test suite to 
run",
+  "modification": 1
+}
diff --git a/.github/trigger_files/beam_PostCommit_PortableJar_Spark.json 
b/.github/trigger_files/beam_PostCommit_PortableJar_Spark.json
new file mode 100644
index 00000000000..e3d6056a5de
--- /dev/null
+++ b/.github/trigger_files/beam_PostCommit_PortableJar_Spark.json
@@ -0,0 +1,4 @@
+{
+  "comment": "Modify this file in a trivial way to cause this test suite to 
run",
+  "modification": 1
+}
diff --git a/runners/portability/test_pipeline_jar.sh 
b/runners/portability/test_pipeline_jar.sh
index f01d67b6580..871a604e319 100755
--- a/runners/portability/test_pipeline_jar.sh
+++ b/runners/portability/test_pipeline_jar.sh
@@ -123,7 +123,16 @@ OUTPUT_JAR="test-pipeline-${RUNNER}-$(date 
+%Y%m%d-%H%M%S).jar"
 
 if [[ "$TEST_EXIT_CODE" -eq 0 ]]; then
   # Execute the jar
-  java -jar $OUTPUT_JAR || TEST_EXIT_CODE=$?
+  JAVA_ARGS=()
+  if [[ "$RUNNER" = "SparkRunner" ]]; then
+    JAVA_ARGS+=(
+      "--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"
+    )
+  fi
+  java "${JAVA_ARGS[@]}" -jar $OUTPUT_JAR || TEST_EXIT_CODE=$?
 fi
 
 rm -rf $ENV_DIR
diff --git a/sdks/java/testing/nexmark/build.gradle 
b/sdks/java/testing/nexmark/build.gradle
index bd917a3935a..b554e9d9297 100644
--- a/sdks/java/testing/nexmark/build.gradle
+++ b/sdks/java/testing/nexmark/build.gradle
@@ -114,6 +114,19 @@ if (isSparkRunner) {
   }
 }
 
+def sparkJvmArgs() {
+  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"
+    ]
+  }
+  return []
+}
+
 def getNexmarkArgs = {
   def nexmarkArgsStr =  project.findProperty(nexmarkArgsProperty) ?: ""
   def nexmarkArgsList = new ArrayList<String>()
@@ -179,6 +192,7 @@ task run(type: JavaExec) {
     systemProperty "spark.ui.showConsoleProgress", "false"
     // Dataset runner only
     systemProperty "spark.sql.shuffle.partitions", "4"
+    jvmArgs += sparkJvmArgs()
   }
 
   mainClass = "org.apache.beam.sdk.nexmark.Main"
diff --git a/sdks/java/testing/tpcds/build.gradle 
b/sdks/java/testing/tpcds/build.gradle
index 6a05df96ab2..15fdd480f07 100644
--- a/sdks/java/testing/tpcds/build.gradle
+++ b/sdks/java/testing/tpcds/build.gradle
@@ -104,6 +104,19 @@ if (isSpark) {
     }
 }
 
+def sparkJvmArgs() {
+  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"
+    ]
+  }
+  return []
+}
+
 // Execute the TPC-DS queries or suites via Gradle.
 //
 // Parameters:
@@ -141,6 +154,7 @@ task run(type: JavaExec) {
     // Dataset runner only
     systemProperty "spark.sql.shuffle.partitions", "4"
     systemProperty "spark.sql.adaptive.enabled", "false" // high overhead for 
complex queries
+    jvmArgs += sparkJvmArgs()
   }
 
     mainClass = "org.apache.beam.sdk.tpcds.BeamTpcds"

Reply via email to