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`.

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

Commit messages:
 - 8288589: Files.readString ignores encoding errors for UTF-16

Changes: https://git.openjdk.org/jdk/pull/9193/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9193&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288589
  Stats: 51 lines in 2 files changed: 26 ins; 14 del; 11 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

Reply via email to