[jdk17u-dev] RFR: 8375080: The tools/jpackage/windows/Win8365790Test.java may fail with ClassNotFoundException: jtreg.SkippedException
Min Choi
duke at openjdk.org
Wed Feb 11 09:53:21 UTC 2026
`Win8365790Test` calls `TKit.throwSkippedException()` when the test environment doesn't support Ctrl+C signal delivery.
In JDK 17/21, `TKit.throwSkippedException()` uses reflection (`Class.forName("jtreg.SkippedException")`) to load the exception class, which requires `jtreg.SkippedException` to be on the classpath.
public static RuntimeException throwSkippedException(String reason) {
trace("Skip the test: " + reason);
RuntimeException ex = ThrowingSupplier.toSupplier(
() -> (RuntimeException) Class.forName("jtreg.SkippedException").getConstructor(
String.class).newInstance(reason)).get();
currentTest.notifySkipped(ex);
throw ex;
}
The test was missing the jtreg directives to build this class:
@library /test/lib
@build jtreg.SkippedException
This pattern is already used by other jpackage tests that call `throwSkippedException()` (e.g., `SigningAppImageTest.java`).
Note: JDK 25+ has this fixed differently via [JDK-8352419](https://bugs.openjdk.org/browse/JDK-8352419) which [hardcodes](https://github.com/openjdk/jdk/commit/70e325004536eb9b79f4943f27eed4ac6cec8bd5#diff-409e0d5eb5d024e7613e041c416fe862752cce72f19c80bb585511239fab9399R1144-R1170) `SkippedException` directly in `TKit.java`.
-------------
Commit messages:
- 8375080: tools/jpackage/windows/Win8365790Test.java may fail with ClassNotFoundException: jtreg.SkippedException
Changes: https://git.openjdk.org/jdk17u-dev/pull/4262/files
Webrev: https://webrevs.openjdk.org/?repo=jdk17u-dev&pr=4262&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8375080
Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk17u-dev/pull/4262.diff
Fetch: git fetch https://git.openjdk.org/jdk17u-dev.git pull/4262/head:pull/4262
PR: https://git.openjdk.org/jdk17u-dev/pull/4262
More information about the jdk-updates-dev
mailing list