Hi, Semyon.
NPE occurs when we initialize KFM on the Toolkit thread, but this is
only a part of the bug, another issue is that we will use cached
keystrokes on the toolkit thread. But this keystrokes is bound to the
appcontext so we should not use objects which connect to the application
on the toolkit thread. This code should be carefully checked to remove
appcontext related stuff from the toolkit thread.
On 21.07.15 12:40, Semyon Sadetsky wrote:
Hello,
Please review fix for JDK9:
bug: https://bugs.openjdk.java.net/browse/JDK-8130895
webrev: http://cr.openjdk.java.net/~ssadetsky/8130895/webrev.00/
realSync() used in the test's TestRunnable class causes events come to
the XAWT event loop but there are no any windows created at the moment
and the system application context is not initialized. This results in
attempt to create the KeyboardFocusManager instance on the XAWT's
thread group during the XEvent dispatching. That in its turn causes NPE.
The solution: since KeyboardFocusManager should never be instantiated
in the toolkit event loop, the corresponding check was added.
--Semyon
--
Best regards, Sergey.