Incomplete JavaDoc for Collections.synchronizedXYZ
Paul Sandoz
paul.sandoz at oracle.com
Wed Oct 14 10:00:19 UTC 2015
Hi Tagir,
Agreed. If you wanna send a patch to this list with updates to the other synchronized* methods i can review push it for you.
Paul.
> On 12 Oct 2015, at 15:18, Tagir F. Valeev <amaembo at gmail.com> wrote:
>
> Hello!
>
> With the introduction of Stream API the JavaDoc for
> Collections.synchronizedCollection was updated (as part of work on
> JDK-8023275):
>
> * It is imperative that the user manually synchronize on the returned
> * collection when traversing it via {@link Iterator}, {@link Spliterator}
> * or {@link Stream}:
>
> This sounds fine, but the same update is missing on other
> synchronizedXYZ methods. For example, Collections.synchronizedList
> documentation still states:
>
> * It is imperative that the user manually synchronize on the returned
> * list when iterating over it:
>
> Nothing about Spliterator and especially about Stream. The same for
> synchronizedSet, synchronizedSortedSet, synchronizedNavigableSet. Even
> though internally all of them inherit the SynchronizedCollection
> implementation, it's not specified that, for example, synchronizedSet
> behavior is somehow connected with synchronizedCollection behavior.
>
> I think, the corresponding documentation update should be added. It's
> especially important for the Stream as many people see no difference
> between
>
> collection.forEach(...);
>
> And
>
> collection.stream().forEach(...);
>
> But with synchronized collections these two lines are very different:
> the second call is not synchronized.
>
> What do you think?
>
> With best regards,
> Tagir Valeev.
>
More information about the core-libs-dev
mailing list