Why does setLocation within the reshape-call hang the pipeline?

Again I played around with my system and the opengl-java2d-pipeline. Within my reshape-callback I call setLocation of the gljpanel I use. I do this to get the rendering in the right position. (I have within a JlayeredPane).

It seems, that with the pipeline enabled (tested on ati hardware so far) this seTLocation(point) call results in some kind of deadlock…

Is this a mistake by me? Or just a synchronisation thing of the pipeline?

Greets
Klemens

This is a technical limitation of the implementation. Basically some locks are held during the GLEventListener callbacks and there are some operations you can’t do, in particular anything requiring the AWT tree lock, which the setLocation call requires. I think you should be able to work around this using EventQueue.invokeLater() or SwingUtilities.invokeLater().

thanks… I had found the same workaround before. Unfortunately I get 2 reshape-calls everytime I set the panel visible. I think I’ll use a flag to determine if the incoming call is a valid one (one I want to support) or one that comes somewhere out of the pipeline. Therefore I’ll install a ComponentListener and force the reshape via setLocation(getLocation) everytime the size changes (I think I don’t need all the other calls).