On Tue, 31 May 2022 15:11:03 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

>> Can I please get a review of this change which addresses the issue noted in 
>> https://bugs.openjdk.java.net/browse/JDK-8287318?
>> 
>> The `ServerImpl` has a `Dispatcher` thread which uses a `Selector` to select 
>> keys of interested. The selected keys is then iterated over and each key is 
>> removed through the iterator. This is fine as long as the selector isn't 
>> then used to invoke select operation(s) while the iterator is still in use. 
>> Doing so leads to the underlying Set being potentially modified with updates 
>> to the selected keys. As a result any subsequent use of the iterator will 
>> lead to `ConcurrentModificationException` as seen in the linked issue.
>> 
>> The commit here fixes that by creating a copy of the selected keys and 
>> iterating over it so that any subsequent select operation on the selector 
>> won't have impact on the Set that is being iterated upon. 
>> 
>> No new tests have been added given the intermittent nature of this issue. 
>> Existing tier1, tier2 and tier3 tests passed without any related failures, 
>> after this change.
>
> Jaikiran Pai has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Use Collection.toArray(...) instead of creating a copy of the collection

Marked as reviewed by dfuchs (Reviewer).

-------------

PR: https://git.openjdk.java.net/jdk/pull/8898

Reply via email to