My application had lots of EDT violations so to overcome this, I extended all the Swing components and in the overridden methods I checked that if the method had not been called through EDT thread then I created an EDT thread and called the method in the super class in that EDT thread. I took care to call the super class get methods through invokeAndWait() and set methods through invokeLater(). Also I took care to atleast initialise my components in EDT threads as I couldn't override the constructors because in constuctors super() should be the first executabe line of code and due to this it was not possible to write code for a separate Runnable entity. When I run my application I find that JFrame.getIgnoreRepaint() is called(I didn't call it explicitly but it was internally called) get struck and my application do not paint properly. I did some debugging and it seems to me that the EDT thread is actually not getting executed and the same time it doesn't send any notification also due to which the wait() method is never interrupted and the application just hangs. Anyway the problem is not much clear to me. So can anyone throw light on this? Also I wud like to know that is it alright to call methods like getIgnoreRepaint() which are actually called internally thorugh invokeAndWait:confused:?

Thread [AWT-Windows] (Suspended)
Object.wait(long) line: not available [native method]
EventQueue$1AWTInvocationLock(Object).wait() line: 474
EventQueue.invokeAndWait(Runnable) line: 846
SwingUtilities.invokeAndWait(Runnable) line: 1257
EMFrame.threadRuuner(Runnable) line: 6835
EMFrame.getIgnoreRepaint() line: 380
WFramePeer(WComponentPeer).handleExpose(int, int, int, int) line: 590
WToolkit.eventLoop() line: not available [native method] line: 269 line: 595