Tests fail to run on Leopard, Eclipse 3.4.2, WT 3.8

WindowTester allows you to easily create and run unit tests for every GUI they build. It can also be used to generate system level tests.

Moderators: gnebling, Eric Clayberg, Dan Rubel, keertip, Phil Quitslund

Tests fail to run on Leopard, Eclipse 3.4.2, WT 3.8

Postby jasonsj » Wed Jul 22, 2009 10:36 am

I get the following stack trace when running on Leopard, JVM 1.5, Eclispe 3.4.2, WindowTester 3.8.0. Any ideas? I've ran WindowTester on mac before, but it's been months and I can't remember the configuration.

2009-07-21 18:36:49.010 java[39627:80f] Process manager already initialized -- can't fully enable headless mode.
**** Error logged by plugin: com.instantiations.eclipse ****
**** Error logged by plugin: com.instantiations.eclipse ****
Unexpected exception
Unexpected exception
Throwable: java.awt.AWTException: headless environment
java.awt.AWTException: headless environment
at java.awt.Robot.<init>(Robot.java:71)
at com.windowtester.runtime.util.ScreenCapture.<clinit>(ScreenCapture.java:73)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor$ScreenShotHandler.takeScreenshotIfNecessary(SWTExecutionMonitor.java:34)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor$ScreenShotHandler.access$200(SWTExecutionMonitor.java:31)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor.takeScreenShotIfNecessary(SWTExecutionMonitor.java:139)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor.exceptionCaught(SWTExecutionMonitor.java:133)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.exceptionCaught(SequenceRunner.java:104)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.access$000(SequenceRunner.java:18)
at com.windowtester.internal.runtime.junit.core.SequenceRunner$1.run(SequenceRunner.java:50)
Throwable: org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ExceptionInInitializerError)
*******************************************

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ExceptionInInitializerError)
at org.eclipse.swt.SWT.error(SWT.java:3777)
at org.eclipse.swt.SWT.error(SWT.java:3695)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3342)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3071)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor.doWaitForFinish(SWTExecutionMonitor.java:159)
at com.windowtester.internal.runtime.junit.core.AbstractExecutionMonitor.waitUntilFinished(AbstractExecutionMonitor.java:211)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.waitUntilFinished(SequenceRunner.java:75)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.exec(SequenceRunner.java:59)
at com.windowtester.runtime.common.UITestCaseCommon.runUITest(UITestCaseCommon.java:153)
at com.windowtester.runtime.common.UITestCaseCommon.runBare(UITestCaseCommon.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
at org.eclipse.pde.internal.junit.runtime.UITestApplication$1.run(UITestApplication.java:114)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3342)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3071)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.pde.internal.junit.runtime.UITestApplication.start(UITestApplication.java:46)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.ExceptionInInitializerError
at com.windowtester.finder.swt.ShellFinder.<clinit>(ShellFinder.java:27)
at com.windowtester.runtime.swt.internal.condition.shell.ShellConditionAdapter.test(ShellConditionAdapter.java:87)
at com.windowtester.internal.runtime.condition.ConditionMonitor.test(ConditionMonitor.java:180)
at com.windowtester.internal.runtime.condition.ConditionMonitor.process(ConditionMonitor.java:214)
at com.windowtester.internal.runtime.UIContextCommon.handleConditions(UIContextCommon.java:200)
at com.windowtester.runtime.swt.internal.UIContextSWT.handleConditions(UIContextSWT.java:866)
at com.windowtester.runtime.swt.internal.UIContextSWT.findAll(UIContextSWT.java:635)
at com.windowtester.runtime.condition.WidgetShowingCondition.test(WidgetShowingCondition.java:48)
at fb.util.ui.common.Tester$2.run(Tester.java:185)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
... 47 more
Caused by: java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:199)
at abbot.tester.swt.Robot.<clinit>(Robot.java:79)
... 58 more
*******************************************

Exception in thread "WT Test Thread" java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getScreenSize(HeadlessToolkit.java:247)
at com.windowtester.runtime.util.ScreenCapture$DefaultScreenCaptureHandler.captureScreen(ScreenCapture.java:178)
at com.windowtester.runtime.util.ScreenCapture$DefaultScreenCaptureHandler.createScreenCapture(ScreenCapture.java:169)
at com.windowtester.runtime.util.ScreenCapture.createScreenCapture(ScreenCapture.java:294)
at com.windowtester.runtime.util.ScreenCapture.createScreenCapture(ScreenCapture.java:278)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor$ScreenShotHandler.takeScreenshotIfNecessary(SWTExecutionMonitor.java:34)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor$ScreenShotHandler.access$200(SWTExecutionMonitor.java:31)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor.takeScreenShotIfNecessary(SWTExecutionMonitor.java:139)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor.exceptionCaught(SWTExecutionMonitor.java:133)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.exceptionCaught(SequenceRunner.java:104)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.access$000(SequenceRunner.java:18)
at com.windowtester.internal.runtime.junit.core.SequenceRunner$1.run(SequenceRunner.java:50)
**** Error logged by plugin: com.instantiations.eclipse ****
Unexpected exception
Throwable: org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NoClassDefFoundError)
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NoClassDefFoundError)
at org.eclipse.swt.SWT.error(SWT.java:3777)
at org.eclipse.swt.SWT.error(SWT.java:3695)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3342)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3071)
at com.windowtester.runtime.swt.internal.junit.SWTExecutionMonitor.doWaitForFinish(SWTExecutionMonitor.java:159)
at com.windowtester.internal.runtime.junit.core.AbstractExecutionMonitor.waitUntilFinished(AbstractExecutionMonitor.java:211)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.waitUntilFinished(SequenceRunner.java:75)
at com.windowtester.internal.runtime.junit.core.SequenceRunner.exec(SequenceRunner.java:59)
at com.windowtester.runtime.common.UITestCaseCommon.runUITest(UITestCaseCommon.java:153)
at com.windowtester.runtime.common.UITestCaseCommon.runBare(UITestCaseCommon.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
at org.eclipse.pde.internal.junit.runtime.UITestApplication$1.run(UITestApplication.java:114)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3342)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3071)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.pde.internal.junit.runtime.UITestApplication.start(UITestApplication.java:46)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Caused by: java.lang.NoClassDefFoundError
at com.windowtester.runtime.swt.internal.condition.shell.ShellConditionAdapter.test(ShellConditionAdapter.java:87)
at com.windowtester.internal.runtime.condition.ConditionMonitor.test(ConditionMonitor.java:180)
at com.windowtester.internal.runtime.condition.ConditionMonitor.process(ConditionMonitor.java:214)
at com.windowtester.internal.runtime.UIContextCommon.handleConditions(UIContextCommon.java:200)
at com.windowtester.runtime.swt.internal.UIContextSWT.handleConditions(UIContextSWT.java:866)
at com.windowtester.runtime.swt.internal.UIContextSWT.findAll(UIContextSWT.java:635)
at com.windowtester.runtime.condition.WidgetShowingCondition.test(WidgetShowingCondition.java:48)
at fb.util.ui.common.Tester$2.run(Tester.java:185)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
... 47 more
*******************************************
jasonsj
 
Posts: 3
Joined: Tue Jun 03, 2008 2:32 pm

Re: Tests fail to run on Leopard, Eclipse 3.4.2, WT 3.8

Postby jasonsj » Wed Jul 22, 2009 11:33 am

I added a hack in our base test case class to get around this:

Code: Select all
if (Platform.getOS().contains(Platform.OS_MACOSX))
    System.setProperty("java.awt.headless", Boolean.FALSE.toString()); //$NON-NLS-1$


Setting it as a VM argument didn't seem to work.

I swear this worked before. I've stayed up to date on Apple's Java updates. I verified my Java Preferences to use J2SE 5.0 by default.
jasonsj
 
Posts: 3
Joined: Tue Jun 03, 2008 2:32 pm

Re: Tests fail to run on Leopard, Eclipse 3.4.2, WT 3.8

Postby Phil Quitslund » Wed Jul 22, 2009 1:39 pm

This is curious. Using WT 3.9 on Leopard, 3.4.2 and the default 1.5.0 JVM I'm not seeing this. At some point you might try updating to 3.9 and see if the need for the work-around persists.

Thanks!
--
Phil Quitslund
Software Engineer
Google, Inc.
Phil Quitslund
Moderator
 
Posts: 491
Joined: Fri Apr 28, 2006 6:26 am

Re: Tests fail to run on Leopard, Eclipse 3.4.2, WT 3.8

Postby jasonsj » Wed Jul 22, 2009 1:45 pm

I forgot to mention, I initially had upgraded to 3.9.0 and got the same error. I thought downgrading would fix it, but it didn't.
jasonsj
 
Posts: 3
Joined: Tue Jun 03, 2008 2:32 pm

Re: Tests fail to run on Leopard, Eclipse 3.4.2, WT 3.8

Postby Phil Quitslund » Wed Jul 22, 2009 7:27 pm

Cool. Thanks for adding that bit. It is curious and I'll poke around. In the meantime, I'm happy you have a work-around and this post might provide another:

http://www.instantiations.com/forum/viewtopic.php?f=4&t=2355

Keep us posted if you make any progress and we'll do the same on our end.

Thanks!
--
Phil Quitslund
Software Engineer
Google, Inc.
Phil Quitslund
Moderator
 
Posts: 491
Joined: Fri Apr 28, 2006 6:26 am


Return to Window Tester

Who is online

Users browsing this forum: No registered users and 1 guest