AWT falls in infinite loop

U verdier philippe verdier at ditv-philips.fr
Thu Aug 13 02:32:40 PDT 1998


I run the ICE web-browser (http://www.icesoft.no or Gamelan) and
AWT falls in infinite loop (which leads to a 'StackOverflowError'
in the VM of course). Here is the calls stack for a 'mouseEnter'
event:

    EventDispatchThread.run
----->  MouseEvent.dispatch
|   ->    AWTEvent.transferMouse
|   ->      DocContainer.processMouseEvent
|
|   DocContainer is the component called 'to' (a 'transferMouse'
|   method parameter). It is a component of the ICE browser which
|   has a mouse listener. At this time, the 'DocContainer.processMouseEvent'
|   method calls 'Component.processMouseEvent' which itself calls
|   the component mouse listener (which does nothing). Then, the
|   'Component.processEvent' method is called:
|
|   ->        Component.processEvent
|   ->          MouseEvent.dispatch ----
|                                      |
----------------------------------------

Of course, the ICE browser works very well with JDK 1.1 !

Since all the events are managed through 'EventDispatchThread.run',
I think we can simply remove the call to 'dispatch' in the 
'Component.processEvent' ! No ?

Regards


More information about the kaffe mailing list