Hi, Sergey,
On 3/22/2012 6:05 PM, Sergey Bylokhov wrote:
Hi Everyone,
This is a forward port from jdk 7u4:
http://hg.openjdk.java.net/jdk7u/jdk7u4-dev/jdk/rev/91ede930328c
Deadlock happens when 2 threads lock delegateLock and DefaultCaret
object in different order. Removed code initially was added to stop
recursion between paintPeer and addDirtyRegion(
repaintPeer()->paintPeer()->print()->addDirtyRegion()->repaintPeer()->
etc), but it is impossible now because repaintPeer() asynchronous.
according to the stack trace in bug description, the evaluation above
doesn't look right. Initially reported deadlock involved AWT tree lock,
not delegate lock.
Thanks,
Artem
Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7149913
Webrev can be found at: http://cr.openjdk.java.net/~serb/7149913/webrev.00/