<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