### 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