Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tycho-user] Regression (since 2.1.0): useUIHarness doesn't work with Eclipse Neon anymore

Hi all,

I'm making some headway on my quest to run my tests against old versions
of Java and Eclipse.

With <https://github.com/eclipse/tycho/issues/70> being addressed, I can
now run tests on Java 8 again - *if* on Eclipse Oxygen or later. For
Luna, Mars, and Neon, however, I get an exception during IDE startup:

> java.lang.NullPointerException
>         at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.<init>(ModelServiceImpl.java:121)
>         at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:510)
>         at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:203)
>         at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:632)
>         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
>         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
>         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
>         at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
>         at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:29)
>         at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:122)
>         at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:35)
>         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
>         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
>         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
>         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
>         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:498)
>         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
>         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
>         at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
>         at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

Apparently, there is no IEventBroker present in the application context.
It is present, however, when running the same test using Tycho 2.0.0.

Now, AFAICT the delta between org.eclipse.tycho.surefire.osgibooter
2.0.0 and 2.4.0-SNAPSHOT is really small: UITestApplication no longer
has a branch for IPlatformRunnable, but that branch is not executed
under Neon anyway. I hence suspect that the breakage occurs not in the
test runtime (Booter or JUnit Runner), but in the way the Eclipse
application under test is set up.

The actual command line used to invoke the forked JVM is in both cases
identical, however. Also, the contents of
target/work/configuration/config.ini are identical, with the exception
of the org.eclipse.tycho.surefire.osgibooter and
org.eclipse.tycho.surefire.junit56 bundles being different versions.

Does anyone have an idea where else to look for differences so that I
may be able to make newer Tycho versions compatible with older versions
of Eclipse again (if possible, of course)?

Further input. My tycho-surefire-plugin has the following <configuration>:

> <!-- Run tests as UI tests in a minimal Eclipse Platform. -->
> <useUIHarness>false</useUIHarness>
> <dependencies>
> 	<dependency>
> 		<artifactId>org.eclipse.platform</artifactId>
> 		<type>eclipse-feature</type>
> 	</dependency>
> 	<!-- Needed to avoid CNFE in Surefire; not needed in actual tests -->
> 	<dependency>
> 		<artifactId>org.junit</artifactId>
> 		<type>eclipse-plugin</type>
> 	</dependency>
> </dependencies>

Does anyone have any idea?

Best wishes,

Andreas

-- 
Dr. Andreas Sewe | sewe@xxxxxxx | +49 152 56342856
CQSE GmbH | Centa-Hafenbraedl-Strasse 59 | 81249 Muenchen | www.cqse.eu
Amtsgericht Muenchen | HRB 177678 | GF: F. Deissenboeck, M. Feilkas

Attachment: signature.asc
Description: OpenPGP digital signature


Back to the top