[jdk21u-dev] RFR: 8375080: The tools/jpackage/windows/Win8365790Test.java may fail with ClassNotFoundException: jtreg.SkippedException
Alexey Semenyuk
asemenyuk at openjdk.org
Fri Feb 13 15:41:52 UTC 2026
On Fri, 13 Feb 2026 15:31:52 GMT, Christian Stein <cstein at openjdk.org> wrote:
>> `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`.
>
> `jtreg` doesn't ship with an own `SkipException` - but it detects any other provided and thrown at test runtime. See for example: https://github.com/openjdk/jdk/blob/master/test/lib/jtreg/SkippedException.java
As @sormuras confirmed, jtreg doesn't provide a copy of `jtreg.SkippedException` exception.
This means, bumping Jtreg to 7.5.1+1 in JDK21 will not automatically fix the bug with the missing `jtreg.SkippedException` in the Win8365790Test test and in jpackage tests in general 😒
-------------
PR Comment: https://git.openjdk.org/jdk21u-dev/pull/2606#issuecomment-3897877781
More information about the jdk-updates-dev
mailing list