RFR: 8356165: System.in in jshell replace supplementary characters with ??

Jan Lahoda jlahoda at openjdk.org
Wed May 7 06:49:27 UTC 2025


When reading from `System.in` in a JShell snippet, JShell first reads the whole line (getting a `String`), and then converts this characters from this `String` to bytes on demand. But, it does not convert multi-surrogate code points correctly, it tries to convert each surrogate separately, which cannot work.

The proposal herein is to, when the current character is a high surrogate, peek at the next character, and if it is a low surrogate, convert both the high and low surrogates to bytes together.

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

Commit messages:
 - Fixing tests.
 - 8356165: System.in in jshell replace supplementary characters with ??

Changes: https://git.openjdk.org/jdk/pull/25079/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25079&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8356165
  Stats: 74 lines in 3 files changed: 70 ins; 0 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/25079.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25079/head:pull/25079

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


More information about the kulla-dev mailing list