<AWT Dev> Problem with modal Dialog

Roman Kennke roman.kennke at aicas.com
Fri Feb 13 08:54:46 PST 2009


Hi there,

I have a strange problem with modal dialogs here. I have a modal dialog, 
which is never released, even though it is disposed. What happens is 
this: in Dialog.hideAndDisposeHandler() the waking event is correctly 
posted to the EQ. Then doDispose() continues in Window.doDispose(), 
where a DisposeAction is created. Then it finds that it is on the EDT 
and immediately executes this action. This in turn calls removeNotify(), 
which then leads to all events that are related to the dialog to be 
removed from the EQ, including the waking event. Thus, the Dialog is 
never released and the thread that opened the dialog is stuck forever, 
since nobody will notify() it. It can easily be solved in 
Window.doDispose(), just remove that if (EventQueue.isDispatchThread()) 
check.

Unfortunately I have no easy testcase to reproduce. I found this in 
JamaicaVM w/ DirectFB/Caciocavallo. It is not unlikely that this only 
happens because we have different thread scheduling than Hotspot, or I 
might even think wrong and something is missing to me.

Any ideas? Is this a bug? Am I thinking in the wrong direction?

/Roman

-- 
Dipl.-Inform. (FH) Roman Kennke, Software Engineer, http://kennke.org
aicas Allerton Interworks Computer Automated Systems GmbH
Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
http://www.aicas.com   * Tel: +49-721-663 968-48
USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
Geschäftsführer: Dr. James J. Hunt



More information about the awt-dev mailing list