Skip to main content

Java 26 Probe

DeepPhe installer metadata now targets Java 26. Docker and local installer runtime tests showed that the NLP pipeline can run on Java 26 when these conditions hold:

  • Keep the installer module flags:
    • --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
    • --add-opens=java.base/java.lang=ALL-UNNAMED
  • Remove or exclude log4j-1.2-api-* from the NLP runtime classpath so the legacy log4j-1.2.17.jar and Log4j 2 bridge jar are not both loaded.

The local installer probe scripts live in tests/:

./tests/run-java26-suite.sh

The most important test is the cTAKES/DeepPhe all-patient run:

./tests/ctakes-summarizer-all-patients.sh clean-classpath

It runs DefaultDeepPhe.piper over all local example patients, validates split JSON outputs, checks document counts, parses JSON, and scans logs for Java/database failure signatures.

The install4j dry-run test creates a temporary Java 26 project in test-results/; it does not edit DeepPhe-and-Launcher.install4j.

To dry-run all configured installer media ids:

I4J_BUILD_IDS='484,251,815' ./tests/install4j-java26-project-check.sh

Current Results

Local results from 2026-07-14:

  • ./tests/ctakes-summarizer-all-patients.sh clean-classpath: passed on Java 26.
  • ./tests/ctakes-summarizer-repeat.sh: passed 3 repeated Java 26 runs.
  • ./tests/java26-runtime-smoke.sh wildcard-classpath: completed but failed log validation with the HSQLDB/Log4j IncompatibleClassChangeError, proving the classpath cleanup is required.
  • I4J_BUILD_IDS='484,251,815' ./tests/install4j-java26-project-check.sh: passed install4j dry-run for macOS, Windows, and Linux media.
  • Direct install4jc --test --faster --disable-signing --disable-notarization --build-ids=484,251,815 DeepPhe-and-Launcher.install4j: passed for the real project file.

The all-patient cTAKES/DeepPhe run processed 8 patients and 62 documents through DefaultDeepPhe.piper.

install4j 10.0.9 accepted 26/jdk-26.0.1+8 and created Java 26 runtime bundles for:

  • macos-universal-26.0.1.tar.gz
  • windows-amd64-26.0.1.tar.gz
  • linux-amd64-26.0.1.tar.gz

The installer project changes are:

  • javaMinVersion="26" and javaMaxVersion="26" on the application.
  • javaMinVersionOverride="26" and javaMaxVersionOverride="26" on the launcher.
  • JRE bundle release changed from 17/jdk-17.0.19+10 to 26/jdk-26.0.1+8.
  • The NLP install script removes log4j-1.2-api-* from .DeepPhe/lib.