Usage of Stream::peek in Project

dev.infeo at mailbox.org dev.infeo at mailbox.org
Fri Sep 3 09:27:14 UTC 2021


Hey all,

recently I stumbled over the problem of non-executing stream operations, especially `Stream.peek(Consumer<? super T> action)`, for more Info see [1]. With JDK 17 this behaviour is even extended (e.g. skip() preserves the SIZED attribute of a stream, making optimizations possible).

Out of curiosity I searched the sources at HEAD of peek(...) usages and found two problematic classes:
* javafx.scene.control.MultipleSelectionModelBase: Line 745
* javafx.scene.control.ControlsUtil: Line 165 & 171

Especially the statement around line 171 in ControlsUtil is a candidate which might be "optimized" to not execute the peek(...) at all, while the inline comment states the call to peek is crucial.

I don't know what the roadmap says about updating to JDK17, but it might already be a problem and I wantend to raise attention to this.

Best Regards,
Armin


[1] https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/stream/package-summary.html#SideEffects


More information about the openjfx-dev mailing list