-
Bug
-
Resolution: Fixed
-
P2
-
1.3.0
-
None
-
kestrel
-
x86
-
windows_nt
Recent changes to the AwtGraphics code now cause a portion of Graphics disposal
to be synchronized on the Toolkit thread. The SendMessage call is made while
holding the extern "imageLock" locking object. The imageLock is also required
for construction of an AwtGraphics.
The printing code (specifically, AwtMasterPrinterGraphics::CreateAndStart) is
already synchronized on the Toolkit thread. This function creates a new
AwtGraphics instance. Since the lock acquisition of these two operations is
in a different order, there is the potential for deadlock.
To reproduce the bug, launch the Clock applet. From the Applet menu, repeatedly
select "Print" and then cancel the printing operation. Eventually, the Applet
will deadlock.
to be synchronized on the Toolkit thread. The SendMessage call is made while
holding the extern "imageLock" locking object. The imageLock is also required
for construction of an AwtGraphics.
The printing code (specifically, AwtMasterPrinterGraphics::CreateAndStart) is
already synchronized on the Toolkit thread. This function creates a new
AwtGraphics instance. Since the lock acquisition of these two operations is
in a different order, there is the potential for deadlock.
To reproduce the bug, launch the Clock applet. From the Applet menu, repeatedly
select "Print" and then cancel the printing operation. Eventually, the Applet
will deadlock.
- relates to
-
JDK-4366691 deadlock condition on win32 during display mode switch
- Resolved