mattjlewis / diozero

Java Device I/O library that is portable across Single Board Computers and microcontrollers. Tested with Raspberry Pi, Odroid C2, BeagleBone Black, Next Thing CHIP, Asus Tinker Board and Arduinos / Pico. Supports GPIO, I2C, SPI as well as Serial communication. Also known to work with Udoo Quad.
https://www.diozero.com
MIT License
261 stars 59 forks source link

Stream modifies the underlying map while traversing. #150

Closed EAGrahamJr closed 1 year ago

EAGrahamJr commented 1 year ago

Although it's not inherently obvious (even though the comment indicated it), removing elements from the underlying collection while in a stream is technically Not A Good Idea(tm). The change here collects the elements in a new list and then invokes the close method, which should invoke the closed method on this class.

mattjlewis commented 1 year ago

Thank you - I recall writing that and being surprised that it worked!

EAGrahamJr commented 1 year ago

I was dorking with Kotlin coroutines and got a concurrent modification exception. :smirk: