Staring at LinkedTransferQueue.java, I see:
return Spliterators.spliterator
(a, 0, i, (Spliterator.ORDERED |
Spliterator.NONNULL |
Spliterator.CONCURRENT));
but ... that's a spliterator over an immutable array, so shouldn't we have
IMMUTABLE instead of CONCURRENT?
Looking further, I see ArraySpliterator requires its input array to be
unmodified during operation
* @param array the array, assumed to be unmodified during use
("assumed" is weird in javadoc. maybe "required"?)
but ArraySpliterator does not include IMMUTABLE in characteristics, even
though Arrays.spliterator does.
I suggest fixing all these array spliterator characteristics to always
report IMMUTABLE and never report CONCURRENT, and to document this fact, as
we already do with SIZED and SUBSIZED.