RFR: 8325340: Add ASCII fast-path to Data-/ObjectInputStream.readUTF
Raffaello Giulietti
rgiulietti at openjdk.org
Wed Feb 14 10:44:03 UTC 2024
On Tue, 6 Feb 2024 16:17:21 GMT, Claes Redestad <redestad at openjdk.org> 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
More information about the nio-dev
mailing list