<AWT Dev> [8] Review request for 8015730: PIT: On Linux, OGL=true and fbobject=false leads to deadlock or infinite loop

Anton Litvinov anton.litvinov at oracle.com
Fri Jun 28 10:16:03 PDT 2013


Could you please review the following fix for a bug, which consists in a 
deadlock provoked by concurrency between AWT-EventQueue and Java2D Queue 
Flusher for taking AWT lock, when OpenGL rendering is enabled.

Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8015730
Webrev: http://cr.openjdk.java.net/~alitvinov/8015730/webrev.00

The fix allows the code from the native function 
"Java_sun_java2d_opengl_GLXSurfaceData_initPbuffer" of the file 
"jdk/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c" execute all 
XError handling procedures using "sun.awt.X11.XErrorHandlerUtil" class 
without acquiring AWT lock. It is the only available solution for this 
problem, because the current design of 
"sun.java2d.opengl.OGLRenderQueue" class does not allow to take AWT lock 
in Java2D Queue Flusher thread without reaching a deadlock, since all 
calls to the method 
"sun.java2d.opengl.OGLRenderQueue.flushAndInvokeNow(Runnable r)" are 
guarded by AWT lock.

Thank you,

More information about the awt-dev mailing list