Skip to main content

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

Hi

IIRC https://wiki.eclipse.org/Tycho/FAQ#How_do_I_install_the_org.eclipse.osgi.compatibility.state_fragment.3F is the solution.

    Regards

        Ed Willink

On 16/04/2021 16:23, Andreas Sewe wrote:
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


_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/tycho-user

Virus-free. www.avast.com

Back to the top