Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-11666

Add -XstartOnFirstThread as a command line argument for Mac

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Done
    • Major
    • 3.3.0.CR1
    • 3.3.0.Beta3
    • build
    • None

    Description

      I am trying to run SWTBot tests on Jenkins on a Mac OS slave. By default, it fails with the following error:

      rg.eclipse.swt.SWTException: Invalid thread access
      	at org.eclipse.swt.SWT.error(SWT.java:4282)
      	at org.eclipse.swt.SWT.error(SWT.java:4197)
      	at org.eclipse.swt.SWT.error(SWT.java:4168)
      	at org.eclipse.swt.widgets.Display.error(Display.java:1065)
      	at org.eclipse.swt.widgets.Display.createDisplay(Display.java:822)
      	at org.eclipse.swt.widgets.Display.create(Display.java:805)
      	at org.eclipse.swt.graphics.Device.<init>(Device.java:130)
      	at org.eclipse.swt.widgets.Display.<init>(Display.java:696)
      	at org.eclipse.swt.widgets.Display.<init>(Display.java:687)
      	at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:716)
      	at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:153)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:95)
      	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31)
      	at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:114)
      	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37)
      	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      	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:344)
      	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:597)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
      	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
      
      

      I've found out that the Display needs to be created on thread 0 - this can be accomplished by adding -XstartOnFirstThread as a VM argument. However, the VM on Linux cannot handle the parameter, so it needs to be specified only for Mac.

      In order not to repeat the configuration in every test module. Could you please provide a new profile in parent pom activated for Mac that would add the mentioned parameter to the tycho-surefire-plugin's argLine property?

      Attachments

        Issue Links

          Activity

            People

              ljelinko@redhat.com Lucia Jelinkova (Inactive)
              ljelinko@redhat.com Lucia Jelinkova (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: