On Sun, 20 Nov 2022 12:06:55 GMT, Markus KARG <d...@openjdk.org> wrote:
>> The updated code now changes the behaviour in the other direction: >> >> In the original code, if `s2` was null a NPE was thrown in `peekNextStream` >> when `s1` was exhausted. >> >> In the current code, `s2` is silently ignored if it is null. >> >> A safer alternative that preserves the behaviour of nulls seems to be the >> replace `List.of` with `Arrays.asList`. >> >> These subtle changes in behaviour demonstrates the problem with even trivial >> updates to legacy code... > > It depends on *how far* we want to align the behavior. I do see a benefit in > accepting `s2` being `null`. I do not see a benefit in throwing NPE at a > *later* time. Why should an application want to expect that? I do understand > your opinion but I think that backwards compatibility also should have > limits, and in this particular case I would say such a limit is clearly > reached. Otherwise we must not replace Vector at all, because someone could > actually rely on the synchronization, also. @AlanBateman WDYT? ------------- PR: https://git.openjdk.org/jdk/pull/11249