RFR: 8356245: stdin.encoding and stdout.encoding in jshell don't respect console code pages

Jan Lahoda jlahoda at openjdk.org
Tue May 20 13:34:01 UTC 2025


JShell, by default, uses two processes: the main one which compiles snippets, and a remote, that runs them.

The remote process is not connected to console, and hence its in/out/err encoding will be derived from the platform encoding, while the main process will use encoding derived from the console settings.

This PR proposes to pass the stdin/out/err encoding from the main process to the remote process. It also has to change the char->byte conversion for System.in to use the `stdin.encoding`, so that the remote process understands it.

The `InputUITest` requires explicitly setting encoding, as the tests sometimes run with the ASCII encoding, but use Unicode characters, and fail, as the ASCII encoding is not really followed by JShell now.

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

Commit messages:
 - Attempting to fix test failures.
 - Clarifying duration, as suggested.
 - 8356245: stdin.encoding and stdout.encoding in jshell don't respect console code pages

Changes: https://git.openjdk.org/jdk/pull/25328/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25328&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8356245
  Stats: 24 lines in 3 files changed: 13 ins; 2 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/25328.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25328/head:pull/25328

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


More information about the kulla-dev mailing list