flatMap still prevents short circuiting when using .iterator()

Roger Riggs Roger.Riggs at oracle.com
Wed Aug 21 18:44:22 UTC 2019

Created an issue to track this:

JDK-8229983 <https://bugs.openjdk.java.net/browse/JDK-8229983> flatMap 
still prevents short circuiting when using .iterator()

Regards, Roger

On 8/20/19 4:55 AM, Stephen Buergler wrote:
> Oops thanks.
> So I think the issue is that StreamSpliterators.java has this line
> bufferSink = ph.wrapSink(b::accept);
> that creates a Sink that never returns true in cancellationRequested()
> which is needed to get flatMap() to stop looping.
> On Thu, Aug 15, 2019 at 7:43 PM David Holmes <david.holmes at oracle.com> wrote:
>> Re-directing to core-libs-dev
>> David
>> On 15/08/2019 7:48 pm, Stephen Buergler wrote:
>>> Not really sure where to send this.
>>> flatMap was fixed so that it doesn't prevent short circuiting.
>>> https://bugs.openjdk.java.net/browse/JDK-8075939
>>> If you replace the test cases in the ticket with versions that use
>>> .iterator().next() instead of .findFirst().get() then the problem
>>> still happens.
>>> I just tested this with openjdk:14 on docker hub.

More information about the core-libs-dev mailing list