<AWT Dev> [7u4] Code Review Request for CR 7082294 - nsk/regression/b4265661 crashes on windows

Oleg Pekhovskiy oleg.pekhovskiy at oracle.com
Fri Jan 27 09:26:33 PST 2012

Hi guys!

Here is the description of CR:

Patch with changes attached.

Description of the fix:
Sometimes execution of AwtObjectList::Cleanup() could be delayed by
   From the other side this method is called from AwtToolkit::Dispose().
There AwtObjectList::Cleanup() is followed by AwtFont::Cleanup().
Thus, sometimes we could have the situation when AwtFont::Cleanup() is
called before the main functionality of AwtObjectList::Cleanup().
It means that all HFONT objects would be deleted from AwtFontCache.
So when AwtFont::Dispose() would be called from AwtObjectList::Cleanup()
it would not find HFONT in AwtFontCache and would try to delete HFONT
(that is deleted in AwtFontCache) once again.
There is also a custom message pump in AwtToolkit::Dispose() that allows
If we move AwtFont::Cleanup() right after that message pump we guarantee
that AwtObjectList::Cleanup() would always be called before
That what my fix is about.

PS: I also left my changes in AwtFont to emilinate invalid HFONT usage
and access violation probability between AwtFont::Dispose() and
AwtFont::~AwtFont() calls.

PPS: This implementation is a kind of workaround for 7u4. As for JDK 8 - 
font caching should be improved.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 7082294.patch
Url: http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20120127/6c31045e/7082294.patch 

More information about the awt-dev mailing list