<Swing Dev> [9] Fix for JDK-8041909 : Uncaught exceptions in JComboBox listeners cause listener not to receive events
Alexandr Scherbatiy
alexandr.scherbatiy at oracle.com
Fri Jun 17 12:55:42 UTC 2016
The fix looks good to me.
Thanks,
Alexandr.
On 6/17/2016 2:03 PM, Ajit Ghaisas wrote:
> Thanks Alex for the review.
> Here is the updated webrev :
> http://cr.openjdk.java.net/~aghaisas/8041909/webrev.01/
>
> Request you to review.
>
> Regards,
> Ajit
>
> -----Original Message-----
> From: Alexandr Scherbatiy
> Sent: Thursday, June 16, 2016 7:54 PM
> To: Ajit Ghaisas; Rajeev Chamyal; Sergey Bylokhov; swing-dev at openjdk.java.net
> Subject: Re: [9] Fix for JDK-8041909 : Uncaught exceptions in JComboBox listeners cause listener not to receive events
>
>
> Just two small comments:
> - JComboBox line 1256 and 1257: the 'finally' keyword should be on the same line as open bracket
> - ActionListenerExceptionTest.test() method: all calls to Swing objects should be done on EDT
>
> Thanks,
> Alexandr.
>
> On 6/15/2016 10:05 AM, Ajit Ghaisas wrote:
>> Hi,
>>
>> Bug :
>> https://bugs.openjdk.java.net/browse/JDK-8041909
>>
>> Issue :
>> Uncaught exceptions in JComboBox listeners cause listener not to receive events.
>> If an uncaught exception is thrown inside an action listener for a JComboBox, that action listener will no longer receive action events.
>> Note that if an uncaught exception is thrown inside the action listener for a JButton for example, the listener will still receive subsequent action events.
>>
>> Root Cause :
>> fireActionEvent() method in JComboBox class has a boolean guard (namely firingActionEvent) to ensure that an infinite loop is not created.
>> This guard is not reset if any exception occurs in actionPerformed() method.
>> This results in permanent breaking of subsequent action listener invocations of JComboBox.
>>
>> Fix :
>> The boolean guard (namely firingActionEvent) is reset in finally block.
>> This results in firingActionEvent being set to false at the end of fireActionEvent() method even in case of exception in actionPerformed() method.
>>
>> Webrev :
>> http://cr.openjdk.java.net/~aghaisas/8041909/webrev.00/
>>
>> Request you to review.
>>
>> Regards,
>> Ajit
More information about the swing-dev
mailing list