From 2a785757168f1237dd8b5ee0a54c87b0244519fb Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Wed, 17 Sep 2025 15:47:18 -0700 Subject: [PATCH 1/2] Update CI to test with JDK 25 (Latest LTS) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated the latest JDK test job to use JDK 25 instead of JDK 17, reflecting the new LTS release. Also renamed the test to "JDK Latest LTS" for better clarity and future-proofing. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b0922e2fc..42dddf9c0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -131,7 +131,7 @@ jobs: annotate_only: true detailed_summary: true test_3_latest_jdk: - name: Scala 3 / JDK17 + name: Scala 3 / JDK Latest LTS runs-on: ubuntu-latest needs: changes if: needs.changes.outputs.tests == 'true' @@ -140,7 +140,7 @@ jobs: - uses: actions/setup-java@v5 with: distribution: 'zulu' - java-version: '17' + java-version: '25' - name: Scala 3 test # Test only Scala 3 supported projects run: ./sbt "++ 3; projectDotty/test; dottyTest/run" @@ -149,7 +149,7 @@ jobs: if: always() # always run even if the previous step fails with: report_paths: '**/target/test-reports/TEST-*.xml' - check_name: Test Report Scala 3 / JDK17 + check_name: Test Report Scala 3 / JDK Latest LTS annotate_only: true detailed_summary: true test_integration: From 50d5d319f9aad87bdc71c1b680e2a1f76ae7473a Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Wed, 17 Sep 2025 16:05:40 -0700 Subject: [PATCH 2/2] Fix JDK 25 compatibility issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Conditionally add Security Manager JVM option only for JDK 17-23 - JDK 24+ removed the Security Manager completely, causing VM startup failures - Rename CI test job to "JDK25" for clarity - Note: Parquet tests still fail on JDK 25 due to Hadoop's Subject.getSubject() dependency 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/test.yml | 4 ++-- build.sbt | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 42dddf9c0..779022844 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -131,7 +131,7 @@ jobs: annotate_only: true detailed_summary: true test_3_latest_jdk: - name: Scala 3 / JDK Latest LTS + name: Scala 3 / JDK25 runs-on: ubuntu-latest needs: changes if: needs.changes.outputs.tests == 'true' @@ -149,7 +149,7 @@ jobs: if: always() # always run even if the previous step fails with: report_paths: '**/target/test-reports/TEST-*.xml' - check_name: Test Report Scala 3 / JDK Latest LTS + check_name: Test Report Scala 3 / JDK25 annotate_only: true detailed_summary: true test_integration: diff --git a/build.sbt b/build.sbt index 389229c72..02cc360ce 100644 --- a/build.sbt +++ b/build.sbt @@ -1016,11 +1016,18 @@ lazy val parquet = "org.slf4j" % "slf4j-jdk14" % SLF4J_VERSION % Optional, "org.apache.parquet" % "parquet-avro" % PARQUET_VERSION % Test ), - // Add Java options to allow security manager for Hadoop/Parquet compatibility with Java 17+ + // Add Java options to allow security manager for Hadoop/Parquet compatibility with Java 17-23 + // JDK 24+ removed the Security Manager completely Test / fork := true, - Test / javaOptions ++= Seq( - "-Djava.security.manager=allow" - ) + Test / javaOptions ++= { + import scala.util.Try + val javaVersion = Try(System.getProperty("java.version", "1.8")).getOrElse("1.8") + val majorVersion = javaVersion.split("\\.")(0).toInt + if (majorVersion >= 17 && majorVersion < 24) + Seq("-Djava.security.manager=allow") + else + Nil + } ) .dependsOn(codec.jvm, sql)