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.

Reply via email to