RFR: 8286571: java source launcher from a minimal jdk image containing jdk.compiler fails with --enable-preview option

Adam Sotona asotona at openjdk.java.net
Tue May 17 12:55:21 UTC 2022


### Problem description
Minimal jdk image created by jlink with the only jdk.compiler module and its dependencies
fails to run java source launcher correctly (for example when --source N is specified).
Failing source launcher is the only one expression of internal jdk.compiler malfunction, another example is failure to run javac with --release option.

### Root cause
Module jdk.compiler requires zip filesystem (jdk.zipfs module) to parse ct.sym file and so to provide full functionality.
However module jdk.zipfs is not included in the minimal JDK image, because module jdk.compiler does not declare it as "requires" in its module info.

### Alternative patch
The problem can be alternatively resolved by complex code checks in jdk.compiler to provide user with valid error message, however that solution would be just a workaround for jdk.compiler dual functionality (with or without presence of jdk.zipfs module).

### Proposed fix
This patch does fixes the problem by explicit declaration of jdk.compiler dependency on jdk.zipfs.
Plus added specific test case.

Please review the patch or raise objections against declaration of jdk.compiler dependent on jdk.zipfs.

Thanks,
Adam

-------------

Commit messages:
 - 8286571: java source launcher from a minimal jdk image containing jdk.compiler fails with --enable-preview option

Changes: https://git.openjdk.java.net/jdk/pull/8747/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=8747&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8286571
  Stats: 30 lines in 2 files changed: 29 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/8747.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/8747/head:pull/8747

PR: https://git.openjdk.java.net/jdk/pull/8747


More information about the compiler-dev mailing list