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@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