On Tue, Sep 9, 2008 at 3:55 PM, Artem Ananiev <[EMAIL PROTECTED]> wrote: > Hi, AWT team, > > there are several issues related to EventQueue class with a long history. > The number of user votes constantly grows, so I think it would be fine if we > can get them fixed in some nearest future. > > The list of bugs include (but not limited to): > > 6424157: java.awt.EventQueue push/pop might cause threading issues > > 6542185: Threading issues with java.awt.EventQueue.push/pop > (closed as not a defect, but some of described problems still exist) > > 4913324: Deadlock when using two event queues. > > 4516924: Request public access to pumpEvents(Conditional) type > functionality. > > 6727884: Some Uncaught Exceptions are no longer getting sent to the Uncaught > Exception Handlers > > Some of the described problems don't look related to each other, however > after a closer look I found they really do. That's why I listed them here > altogether, and would like to discuss some possible improvements: > > 1. Synchronization changes. Most of the problems with push/pop are caused by > imperfect synchronization in EventQueue. Currently, all the actions like > postEvent() or getNextEvent() are transferred back and forth in the stack of > event queues, and each queue is accessed in its 'synchronized' block. > Instead, a single lock looks more correct here. > > 2. EventDispatchThread lifecycle. It is a known fact, that event dispatch > thread may die for some reason (for example, because of unhandled > exception). When a new event comes, new EDT is created. Another case when > EDT is switched is push/pop methods: when a new EQ is pushed/popped, a new > EDT is created. > > I'm sure these changes of current dispatch thread is not what developers > expect. Swing is considered as single-threaded toolkit, but it is really > not... > > 3. Controllable event pump. This is what developers have been requesting for > at least 8 years. With the current API this task cannot be solved, and all > the external libs like Foxtrot are really just hacks and depend on JDK > internals. > > From technical point of view, controllable event pump is just a several > lines of code changes: we only need to make public the code which is used > for modality event pumps. > > ---- > > I have a prototype fix with all the three items implemented. Still, it would > be fine to hear what all AWT developers think about proposed changes.
I see list of problems, but do not see list of proposed changes :( Did I miss something? With best regards, Oleg.
