RFR 8164691 Stream specification clarifications for iterate and collect

Stefan Zobel spliterator at gmail.com
Sat Sep 3 22:06:16 UTC 2016

Hi Paul,

there's a small copy & paste error in the code samples in

Example DoubleStream#iterate:

     * <pre>{@code
     *     for (T index=seed; hasNext.test(index); index = next.apply(index)) {
     *         ...
     *     }
     * }</pre>

That should be

     *     for (double index=seed; hasNext.test(index); index =
next.applyAsDouble(index)) {

Same for Int/LongStream#iterate()


2016-08-27 1:13 GMT+02:00 Paul Sandoz <paul.sandoz at oracle.com>:
> Hi,
> Please review some minor tweaks to the stream specification:
>   http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8164691-stream-iterate-collect-spec-updates/webrev/index.html <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8164691-stream-iterate-collect-spec-updates/webrev/index.html>
> The first tweak is to clarify the iterate methods and HB edges between function calls, the functions could potentially be stateful, they will never be called concurrently due to the nature of the source, but may be called in different threads.
> The second tweak is to the three-arg collect method. The combiner of result containers neglected to state how result containers should be merged.
> Thanks,
> Paul.

More information about the core-libs-dev mailing list