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
