RFR: 8305947: SequenceInputStream implementation can use an Iterator rather than Enumeration

Jens Lidestrom duke at openjdk.org
Fri Jun 9 07:27:09 UTC 2023


On Mon, 19 Dec 2022 11:26:25 GMT, Romain Manni-Bucau <duke at openjdk.org> wrote:

> enumeration(list) will create an enumeration, a list and an iterator whereas the impl only requires an iterator
> this PR drops the enumeration wrapper for binary constructor and just maps the enumeration to an iterator for the other case which should be a better compromise in practise.
> 
> Another side but nice effect is to have some lighter classloading (subgraph)

src/java.base/share/classes/java/io/SequenceInputStream.java line 82:

> 80:      */
> 81:     public SequenceInputStream(InputStream s1, InputStream s2) {
> 82:         this(List.of(s1, s2).iterator());

This changes the behaviour for null streams. This line will throw NPE. The previous code throwed NPE in `peekNextStream`, only if the stream was used.

Have your make sure that it is okay to change behaviour?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/11718#discussion_r1162428158


More information about the core-libs-dev mailing list