JDK-6190098 : IllegalArgExpn thrown when re-creating frames with diff graphics configs on Motif, Sol9+xinerama
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.4.0
  • Priority: P4
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2004-11-03
  • Updated: 2011-01-19
  • Resolved: 2007-02-15
Related Reports
Relates :  
Description
I have a multi-monitor setup running sol9 with a virtual screen configured using xinerama. I am creating a frame using primary mon's default graphics config. When the user clicks a button on the frame, I am disposing the frame and re-creating it using the other monitor's def graphics config. Like this I alternate between 2 monitors whenever the user clicks the button on the frame. 

This operation throws an IllegalArgument exception on the above config where as it works fine on Linux + xinerama and win32. This is reproducible only on Motif toolkit and not on XToolkit. This is reproducible right from 1.4.

I have attached a sample test. Execute the sample test. Click on 'Capture' button. One of the frames will be dragged on to the sec monitor. Now make sure 'Move' button has the focus and press the space bar TWICE (you can not click using mouse due to another bug-6190081). You would see the following exception on the console:

java.lang.IllegalArgumentException: adding a container to a container on a different GraphicsDevice
at java.awt.Component.checkGD(Component.java:861)
at java.awt.Container.addImpl(Container.java:1015)
at java.awt.Container.add(Container.java:364)
at RobotDragTest.actionPerformed(RobotDragTest.java:107)
at java.awt.Button.processActionEvent(Button.java:388)
at java.awt.Button.processEvent(Button.java:356)
at java.awt.Component.dispatchEventImpl(Component.java:3958)
at java.awt.Component.dispatchEvent(Component.java:3806)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:591)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
###@###.### 11/3/04 15:04 GMT