RFR: 8375061: Multiple jpackage tool providers may share the same logging config [v2]

Alexey Semenyuk asemenyuk at openjdk.org
Tue Jan 13 16:31:44 UTC 2026


> The patch addresses two issues:
>  - Each jpackage tool provider instance should have its own logging config instance.
>  - The test lib should be able to keep output from concurrently running tests isolated from each other.
> 
> These two fixes are bundled together because it is impossible to verify the jpackage implementation fix without fixing the test lib.
> 
> The test lib fix replaces all inheritable thread-local variables with scoped values. It fixes the interleaved output issue and simplifies the implementation.
> 
> Supplementary changes:
>  - jdk.jpackage.internal.cli.Main: when creating a `java.io.PrintWriter` from a `java.io.PrintStream`, copy the charset instead of using the default one.

Alexey Semenyuk has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains eight commits:

 - Fix JPackageCommand.isWithToolProvider(); support using a custom jpackage tool provider with JPackageCommand instance in addition to existing support to alter the default jpackage tool provider; Add corresponding unit test.
 - Merge branch 'master' into AsyncTest-better-output
 - Update copyright year
 - Log: fix the bug revealed by AsyncTest that log messages from all jpackage instances go into the log streams of the last started jpackage instead of going in log streams associated with these jpackage instances.
 - Use ScopedValue
 - JUnitAdapter: fix charset
 - cli/Main: fix charsets when converting from PrintStream to PrintWriter
 - Simplify TKit; make AsyncTest properly collect test cases logs

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

Changes: https://git.openjdk.org/jdk/pull/29175/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29175&range=01
  Stats: 690 lines in 14 files changed: 386 ins; 162 del; 142 mod
  Patch: https://git.openjdk.org/jdk/pull/29175.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29175/head:pull/29175

PR: https://git.openjdk.org/jdk/pull/29175


More information about the core-libs-dev mailing list