RFR: 8288589: Files.readString ignores encoding errors for UTF-16 [v3]

Naoto Sato naoto at openjdk.org
Tue Jun 21 18:12:23 UTC 2022


> This is a regression caused by the fix to [JDK-8286287](https://bugs.openjdk.org/browse/JDK-8286287), which assumed the method `String.decodeWithDecoder()` was only invoked with cs.REPLACE mode based on the comment "should not happen". Possibly this refers to the `String(byte[], int, int, Charset)` constructor, which specifically mentions the `REPLACE` mode. However, the method is invoked with `String.newStringNoRepl()` and it should NOT replace the malformed input (duh!). The fix is to throw an `Error` for the former case as before the regression, and `CharacterCodingException` for the latter via an `IllegalArgumentException`.
> In fact, `Files.readString()` stopped throwing a `MalformedInputException` since JDK17 with the fix to JDK-8259842, which started throwing an `Error`.

Naoto Sato has updated the pull request incrementally with one additional commit since the last revision:

  Adding a test case in ReadWriteString.java

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/9193/files
  - new: https://git.openjdk.org/jdk/pull/9193/files/e1afd207..f6520503

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=9193&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=9193&range=01-02

  Stats: 36 lines in 1 file changed: 34 ins; 1 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/9193.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9193/head:pull/9193

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


More information about the core-libs-dev mailing list