Hi, Petr,

a few comments:

1. Can InvocationEvent.notifier be final instead of volatile?

2. InvocationEvent now has 4 ctors, 3 public and 1 private. Can all the public ctors call the private one directly? Right now there is an extra call from one public ctor to another, which then call the private one.

3. LWCToolkit.java: for backwards compatibility I suggest to replace "true" with "false" at line 562, so all the uncaught exceptions are thrown to the calling code, as it was before the fix.

Thanks,

Artem

On 10/9/2013 12:54 PM, Petr Pchelko wrote:
Hello, AWT Team.

Please review the fix for the issue:
https://bugs.openjdk.java.net/browse/JDK-8025588
The fix is available at:
http://cr.openjdk.java.net/~pchelko/8025588/webrev.00/
The CCC request for public API changes was approved:
http://ccc.us.oracle.com/8025588

The problem:
Is some cases InvocationEvent was deleted from the EventQueue when it's source 
was disposed. If this InvocationEvent was created by the 
LWCToolkit.invokeAnWait, it never exited from the nested event loop, so the 
application frizzed.

The solution:
Now when the InvocationEvent is removed it's disposed and the invokeAndWait 
mechanism gets notified and exits the nested event loop.

It's impossible to create a regression test here as the issue is very hard to 
reproduce.

With best regards. Petr.


Reply via email to