On Tue, 6 Feb 2024 16:17:21 GMT, Claes Redestad <[email protected]> wrote:
> Adding a fast-path for ASCII-only modified UTF-8 strings deserialied via
> Data- and ObjectInputStream
>
> Testing: tier1-3
src/java.base/share/classes/java/io/DataInputStream.java line 585:
> 583: DataInputStream dis = null;
> 584: if (in instanceof DataInputStream) {
> 585: dis = (DataInputStream)in;
I guess that not making use of `instanceof` pattern matching is to enable
backporting before JDK 16?
src/java.base/share/classes/java/io/DataInputStream.java line 604:
> 602: // For ASCII ISO-8859-1 is equivalent to UTF-8, while
> avoiding a redundant
> 603: // scan
> 604: return new String(bytearr, 0, utflen,
> StandardCharsets.ISO_8859_1);
Not sure this is correct.
If `bytearr` contains some `(byte)0`, that is, if `in` is malformed, this
doesn't throw `UTFDataFormatException`, but it should: modified UTF-8 cannot
contain zeros.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17734#discussion_r1489261534
PR Review Comment: https://git.openjdk.org/jdk/pull/17734#discussion_r1489261783