RFR: 8375061: Multiple jpackage tool providers may share the same logging config
Alexey Semenyuk
asemenyuk at openjdk.org
Mon Jan 12 19:28:40 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.
-------------
Commit messages:
- 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=00
Issue: https://bugs.openjdk.org/browse/JDK-8375061
Stats: 439 lines in 12 files changed: 138 ins; 170 del; 131 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