Hi all,
JBS: https://bugs.openjdk.java.net/browse/JDK-8065709
Webrev: http://cr.openjdk.java.net/~mcherkas/8065709/webrev.00/
AppContext creation is guarder by getAppContextLockand, but during
AppContext creation
we also call EventQueue initialization, during EQ initialization logger
initialization happens
it acquires "javaAwtAccess". if "javaAwtAccess" is acquired by other it
can lead to deadlock:
T1 T2
start AppContext creation
acquire javaAwtAccess
acquire getAppContextLock
init EQ call getAppContext
init Logger waiting for getAppContextLock
waiting for javaAwtAccess
I applied the fix suggested in jbs comments by Petr.
I replaced eager logger initialization in EQ with lazy, so we won't
invoke Logger
during EQ initialization as result no deadlock.
Thanks,
Mikhail.