<Swing Dev> [10] Review Request: 5031664 Increase thread safety of EventListenerList

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Tue Nov 14 00:41:35 UTC 2017

Thanks Alex and Andrej for a feedback.
I have created an updated CSR for this.

On 09/11/2017 23:04, Andrej Golovnin wrote:
> Hi Sergey,
> the order of modifiers is wrong. It should be "protected transient
> volatile". See http://cr.openjdk.java.net/~alundblad/styleguide/index-v6.html#toc-modifiers
> for details.
> Best regards,
> Andrej Golovnin
> On Fri, Oct 27, 2017 at 1:18 AM, Sergey Bylokhov
> <Sergey.Bylokhov at oracle.com> wrote:
>> Hello,
>> Please review the fix for jdk10.
>> The EventListenerList class was implemented to be thread safe. To achieve
>> the correct state of the object:
>>   - two mutators(add/remove) were marked as synchronized.
>>   - the internal array is updated via copy-on-write, the internal array is
>> never modified after it was set.
>> It was assumed that the getXXX methods will get the value which was already
>> set by the mutator or the previous value if mutator is in-progress but was
>> not update the array. The problem is that the getXXX is not necessary read
>> the value which was set, because of lack of happens-before between
>> add/remove and getXXX. In the fix the array was marked as volatile to solve
>> the problem.
>> The CSR will be created after the technical review (the field is protected
>> in public class)
>> Bug: https://bugs.openjdk.java.net/browse/JDK-5031664
>> Webrev can be found at: http://cr.openjdk.java.net/~serb/5031664/webrev.00
>> --
>> Best regards, Sergey.

Best regards, Sergey.

More information about the swing-dev mailing list