Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 367307

Summary: Different behavior running UI-Test from Tycho vs Eclipse
Product: z_Archived Reporter: Nobody - feel free to take it <nobody>
Component: TychoAssignee: Project Inbox <tycho-inbox>
Status: CLOSED INVALID QA Contact:
Severity: normal    
Priority: P3 CC: igor, jan.sievers, nobody
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
How the UI should look like
none
How the UI looks running with Tycho
none
Log of tests with Tycho 0.14.0-SNAPSHOT none

Description Nobody - feel free to take it CLA 2011-12-21 06:51:11 EST
Build Identifier: 20100917-0705

We've developed an Eclipse RCP application were we use tycho to run our CI tests and also some UI tests.

I recently raised the tycho version from 0.12.0 to 0.13.0. 

Now I've the problem that the UI tests fail if I run the tests with tycho but the same tests are successful when I start them from Eclipse (as Plugin-Test).

The strange thing is that the UI looks different depending if I use tycho or Eclipse. 

I'll attach some screenshots to show the difference.

Reproducible: Always

Steps to Reproduce:
I can't provide an example yet, but I'll work on it.
Comment 1 Nobody - feel free to take it CLA 2011-12-21 07:00:31 EST
Created attachment 208672 [details]
How the UI should look like
Comment 2 Nobody - feel free to take it CLA 2011-12-21 07:00:58 EST
Created attachment 208673 [details]
How the UI looks running with Tycho
Comment 3 Jan Sievers CLA 2011-12-21 07:04:34 EST
See [1]

"The OSGi runtimes for tests no longer contains the full target platform but only the (transitive) dependencies of the test bundle. This may lead to test failures due to missing implicit dependencies. Recommendation: Make the dependencies explicit in the component feature and add it to the test runtime."

[1] http://wiki.eclipse.org/Tycho/Release_Notes/0.13
Comment 4 Nobody - feel free to take it CLA 2011-12-21 08:07:35 EST
I've the same problem going back to 0.12.0.
Comment 5 Nobody - feel free to take it CLA 2011-12-22 08:30:02 EST
I did some debugging and it seems that a ClassDefNotFoundError is raised during the UI test:

java.lang.NoClassDefFoundError: Could not initialize class com.prostep.openpdm.who.controller.carpool.ConfigurationLabelProvider

This class is provided in one of our plugins. 

Here's how it looks like:
com.prostep.openpdm.who.ui.test is a fragment with
com.prostep.openpdm.who being it's host plugin.
com.prostep.openpdm.who has a dependency to 
com.prostep.openpdm.who.controller which contains the class.


So how can I add the com.prostep.openpdm.who.controller to the test OSGI environment and why is it not already contained (since it is a direct dependency of the host)?

Here's the stacktrace:
java.lang.NoClassDefFoundError: Could not initialize class com.prostep.openpdm.who.controller.carpool.ConfigurationLabelProvider
	at com.prostep.openpdm.optimizer.gui.HarnessExplorer.createAdditionalTreeContent(HarnessExplorer.java:145)
	at com.prostep.openpdm.optimizer.gui.CarpoolExplorer.createConfigTree(CarpoolExplorer.java:118)
	at com.prostep.openpdm.optimizer.gui.CarpoolExplorer.refresh(CarpoolExplorer.java:450)
	at com.prostep.openpdm.optimizer.gui.multipageeditor.MultiPageEditor.pageChange(MultiPageEditor.java:803)
	at org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:1067)
	at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:603)
	at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:352)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
	at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1254)
	at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1207)
	at org.eclipse.ui.internal.PartStack.presentationSelectionChanged(PartStack.java:841)
	at org.eclipse.ui.internal.PartStack.access$1(PartStack.java:827)
	at org.eclipse.ui.internal.PartStack$1.selectPart(PartStack.java:137)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:133)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$2.handleEvent(DefaultTabFolder.java:88)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
	at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at com.prostep.openpdm.optimizer.Application.start(Application.java:25)
	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:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Comment 6 Igor Fedorenko CLA 2011-12-22 15:24:53 EST
Can you check if tycho 0.14.0-SNAPSHOT behaves differently? It is available from 

<pluginRepositories>
  <pluginRepository>
    <id>tycho-snapshots</id>
    <url>https://oss.sonatype.org/content/groups/public/</url>
  </pluginRepository>
</pluginRepositories> 


If the problem still exists in 0.14.0-SNAPSHOT, please provide a complete standalone example project that demonstrates the problem and we'll have a look.
Comment 7 Nobody - feel free to take it CLA 2011-12-23 03:54:19 EST
I'll try the 0.14.0-SNAPSHOT and give you feedback
Comment 8 Nobody - feel free to take it CLA 2011-12-23 04:09:23 EST
Created attachment 208768 [details]
Log of tests with Tycho 0.14.0-SNAPSHOT

Same result with Tycho 0.14.0-SNAPSHOT.

I've attached my .log file.
Comment 9 Igor Fedorenko CLA 2011-12-23 07:08:55 EST
(In reply to comment #8)
> Created attachment 208768 [details]
> Log of tests with Tycho 0.14.0-SNAPSHOT
> 
> Same result with Tycho 0.14.0-SNAPSHOT.
> 
> I've attached my .log file.

The log does not really help, we need complete standalone example project that demonstrates the problem.
Comment 10 Nobody - feel free to take it CLA 2011-12-23 07:12:24 EST
I'll try to set up a standalone example.
Comment 11 Nobody - feel free to take it CLA 2012-01-10 03:45:50 EST
My bad.. the error was an exception in a static initialization block of my class.

Sorry for the inconvenience.