This discussion is archived
0 Replies Latest reply: Oct 30, 2012 11:08 AM by 971295 RSS

LightweightDispatcher issue with Applets in Browser using Java 7, not 6

971295 Newbie
Currently Being Moderated
Spent the last year at work setting up some GUI JApplets for demos our of code. The JApplets house a number of layers of JPanels and JComponents, but should have no heavyweight components as children. I've set up standalone applications that run one of the JApplets as a child of a JFrame, and those demos have no trouble. When I run the same demo but as a JApplet in a browser, I get errors. Please note that the demo is a JApplet but written like the demo that uses a JFrame, so the JApplet causing an issue is a child of the JApplet the browser knows about.

The issue is seen when the user mouses-over the child JApplet. The listener of the component being moused-over is trying to send an event that the LightweightDispatcher is erroring trying to retarget. It does not seem to find the component that should be receiving the event. For reference, the JApplet implements the mouse-listener interface and is set as the mouse-listener for all its children recursively. Here is the error that is seen:

Exception in thread "AWT-EventQueue-2" java.lang.AssertionError
     at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
     at java.awt.LightweightDispatcher.trackMouseEnterExit(Unknown Source)
     at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
     at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
     at java.awt.Container.dispatchEventImpl(Unknown Source)
     at java.awt.Component.dispatchEvent(Unknown Source)
     at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
     at java.awt.EventQueue.access$000(Unknown Source)
     at java.awt.EventQueue$3.run(Unknown Source)
     at java.awt.EventQueue$3.run(Unknown Source)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
     at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
     at java.awt.EventQueue$4.run(Unknown Source)
     at java.awt.EventQueue$4.run(Unknown Source)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
     at java.awt.EventQueue.dispatchEvent(Unknown Source)
     at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
     at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
     at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
     at java.awt.EventDispatchThread.run(Unknown Source)

and it repeats that for every mouse event that tries to fire within the child JApplet.

Any thoughts on what this could be?

I had a similar issue with key strokes not finding the focused JComponent within the child JApplet, but I made my own KeyboardEventManager to handle that issue. Unfortunately there are no paths like that to override for the mouse listeners, not to mention that there is no focused object for the events erroring.

I do see that when I stop adding the mouse-listeners then the error does not appear, so I'm sure its related to that.

I suppose the most important note here though is that the JApplets were built using Java 6, but the error is seen when running the JApplet with the 1.7 JRE. Also, the JApplet is opened using a JNLP. When the JNLP is set to run at 1.6+ the demo runs fine, when set to 1.7+, the error is seen.

Please let me know if anyone has seen this or has a solution, or if I should report this as a bug to Oracle.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points