On Thu, 19 Feb 2026 09:35:00 GMT, Oli Gillespie <[email protected]> wrote:
>> Add missing cases to SpliteratorTraversingAndSplittingTest. This came up >> when I was fixing https://bugs.openjdk.org/browse/JDK-8372946, and I noticed >> the tests do not cover these sub-maps. >> >> Two interesting parts: >> >> 1. These tests failed when first added because `SubMapKeyIterator` and >> `DescendingSubMapKeyIterator` do not eagerly throw `NullPointerException` >> for `null` action arguments. The spec says "Throws: NullPointerException - >> if the specified action is null", so I updated the implementation to match >> other spliterators. >> 2. Since the descending maps have the reverse expected iteration order, I >> added support in the test harness for descending maps. > > Oli Gillespie has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains four additional > commits since the last revision: > > - Update copyright > - Merge remote-tracking branch 'origin/master' into spliterator-test > - Switch to Objects.requireNonNull > - Add tests and fix impl Thanks. Updated release note to: > `Stream.forEach(Consumer<? super T> action)`, > `Spliterator.forEachRemaining(Consumer<? super T> action)` and > `Spliterator.tryAdvance(Consumer<? super T> action)` specify they throw > `NullPointerException` if their argument is `null`. In prior releases, > implementations of `Spliterator` and `Stream` for subsets of `TreeMap` and > `TreeSet` did not throw `NullPointerException` when passed a null action if > the subset was empty. These methods now throw `NullPointerException` when > passed a null action for an empty subset instead of returning `false` or > completing normally. What do you think? ------------- PR Comment: https://git.openjdk.org/jdk/pull/29485#issuecomment-3927673153
