Review request for 7125456: [macosx] Programmatically selecting List item triggers an ItemEvent

Sergey Bylokhov sergey.bylokhov at oracle.com
Tue Jan 17 09:54:34 PST 2012


17.01.2012 21:29, Alexander Potochkin пишет:
> Hello Sergey
>
> valueChanged() can be called in two scenarios:
>
> 1) by LWLisetPeer itself,
> select() and initialize() methods - they use delegateLock
>
> 2) by the the user's action,
> LWComponentPeer.sendEventToDelegate() also posts events under the 
> delegateLock
Yes. I overlooked lock in the sendEventToDelegate.
The fix looks good to me.

>
> Do you mean any other scenarios?
>
> Thanks
> alexp
>
>> Probably isSkipStateChangedEvent() should use getDelegateLock()?
>>
>> 182 public boolean isSkipStateChangedEvent() {
>> 183 return skipStateChangedEvent;
>> 184 }
>> I mean that we setskipStateChangedEvent to false under delegateLock 
>> on main thread
>> getDelegate().setSkipStateChangedEvent(false);
>>
>> but later we can read it on EDT without lock?
>>
>> public void valueChanged(final ListSelectionEvent e) {
>> 192 if (!e.getValueIsAdjusting()&& !isSkipStateChangedEvent()) {
>>
>>
>>> Thanks
>>> alexp
>>>
>>
>>
>


-- 
Best regards, Sergey.



More information about the macosx-port-dev mailing list