<Swing Dev> Regression test for 8016551 on Linux/Unix

Volker Simonis volker.simonis at gmail.com
Mon Dec 9 18:49:13 UTC 2013


Hi Leonid,

could you please explain, how the regression test you've added for
8016551 is supposed to work?

If I run this test standalone or within JTreg with '-othervm' option
on Linux the test displays a frame with the close icon and then it
throws an  sun.awt.SunToolkit$OperationTimedOut() exception because of
the call to SunToolkit.realSync():

Exception in thread "main" sun.awt.SunToolkit$OperationTimedOut: 10001
    at sun.awt.X11.XToolkit.syncNativeQueue(XToolkit.java:2427)
    at sun.awt.SunToolkit.realSync(SunToolkit.java:1501)
    at bug8016551.main(bug8016551.java:40)

Within JTreg, this of course makes the test fail. If running
standalone, the frame will be still displayed until I close the
window.

If I run the test within JTreg with the '-agentvm' option, it is even
not possible to call setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) on
the created frame, because agent-VMs run with a SecurityManager which
forbids this (also see my mail to
http://mail.openjdk.java.net/pipermail/quality-discuss/2013-December/000175.html):

----------System.err:(33/2049)----------
java.lang.reflect.InvocationTargetException
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1300)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1275)
        at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1350)
        at bug8016551.main(bug8016551.java:46)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at com.sun.javatest.regtest.MainAction$SameVMRunnable.run(MainAction.java:754)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.SecurityException: System.exit() forbidden by JT Harness
        at com.sun.javatest.JavaTestSecurityManager.checkExit(JavaTestSecurityManager.java:117)
        at javax.swing.JFrame.setDefaultCloseOperation(JFrame.java:395)
        at bug8016551$1.run(bug8016551.java:57)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
        at java.awt.EventQueue.access$400(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:697)
        at java.awt.EventQueue$3.run(EventQueue.java:691)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


So I wonder how this test is supposed to work? Who will actually close
the created frame? Or is this supposed to be a manual test?

Thank you and best regards,
Volker



More information about the swing-dev mailing list