Single-buffered apps using the OpenGL-based pipeline sometimes do not repaint
properly when another window is dragged over the app window. This is especially
evident when the application does a lot of complex (i.e. time consuming)
rendering in its paint() method. Symptoms include:
- areas left unpainted (when they should be refreshed)
- background not painted (even though foreground content is visible)
- areas not painted in the expected location
Attached is a testcase that does some complex rendering to the screen in its
paint() routine. Compile and run the testcase with -Dsun.java2d.opengl=True,
and then drag another window over the testcase window. You should notice that
the testcase window often repaints improperly under these circumstances. Note
that this problem is reproducible on all platforms (Solaris, Linux, and
Windows) when the OGL-based pipeline is enabled.