I have a Swing application with some kind of redraw problem. When the screen (JFrame) is closed, artifacts from this screen are sometimes painted on top of other screens. It is completely non-reproducible on 100+ development machines in our office and most of the thousands of users using this software. Messages about this problem have been scattered over the past few years, but we have always blamed them on the graphics card or driver. The number of reports about the problem has risen sharply, although in the last few months we need to find out the real cause.
Almost all of our clients work on Windows, and this affects both Windows 7 and 8. Windows machines usually run JRE 1.6.0_29, but the problem also occurs in versions 1.6.0_45 and 1.7.0_51.
The figure below shows the problem. I set out the artifact in red - this is part of another JFrame that has been closed. When the JFrame was visible, it was not at that location on the screen. Also note that JTable columns just above artifacts don't match rows. Finally, note that the artifact is not only painted over JTable, but over its parent JScrollPane and separate JPanel at the very bottom of the screen.
Anyone have any ideas what might cause this?

Jason source
share