Bug 564992 - Ensure compatibility with 2020-06 and 2020-09
Summary: Ensure compatibility with 2020-06 and 2020-09
Status: CLOSED FIXED
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 6.4.0   Edit
Assignee: Project inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2020-07-07 00:56 EDT by Pierre-Charles David CLA
Modified: 2020-12-04 04:23 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pierre-Charles David CLA 2020-07-07 00:56:47 EDT
We still have a few test failures under 2020-06, that we should investigate, and then follow platform (and other projects) devs to make sure we are also compatible with the upcoming 2020-09.
Comment 1 SWT CLA 2020-09-21 04:01:06 EDT
Greetings,

Ease ui-scripts (org.eclipse.ease.ui.scripts) bundle MANIFEST declares dependency to:
org.eclipse.core.expressions;bundle-version="[3.4.300,4.0.0)",
And the code refers to the class:
org.eclipse.core.internal.expressions.WithExpression

But starting from org.eclipse.core.expressions version 3.7 which is part of the latest Eclipse release 2020-09, the WithExpression class has been moved out of the "internal" package. It is now located in org.eclipse.core.expressions.WithExpression

Trying to run EASE (0.7.0) in such Eclipse version will make all "toolbar" and "menu" declaration in script fail with the error:

An internal error has occurred.org/eclipse/core/internal/expressions/WithExpression

Full stack is:
java.lang.NoClassDefFoundError: org/eclipse/core/internal/expressions/WithExpression
	at org.eclipse.ease.ui.scripts.keywordhandler.ToolbarHandler.addContribution(ToolbarHandler.java:240)
	at org.eclipse.ease.ui.scripts.keywordhandler.ToolbarHandler$UIIntegrationJob.runInUIThread(ToolbarHandler.java:154)
	at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3987)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:153)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	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:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.internal.expressions.WithExpression cannot be found by org.eclipse.ease.ui.scripts_0.7.0.I201906281229
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:516)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 28 more

Ideally, the dependency declaration from org.eclipse.ease.ui.scripts to org.eclipse.core.expressions should change in 0.7.0 to: 
org.eclipse.core.expressions;bundle-version="[3.4.300,3.7.0)"

And a the new EASE version should handle 3.7+ versions of org.eclipse.core.expressions.

Should I open a separate bug for this ?
Thanks in advance.
Keep up the good work, EASE is a great tool :)
Comment 2 Pierre-Charles David CLA 2020-09-21 04:25:40 EDT
Wrong project/component? EASE is not related to Sirius.
Comment 3 SWT CLA 2020-09-21 04:31:28 EDT
Whoops, sorry, I was brought here by the bugzilla form that suggest re-using existing bug instead of creating new ones :/
Comment 4 Pierre-Charles David CLA 2020-12-04 04:23:25 EST
Available in Sirius 6.4.0, see https://download.eclipse.org/sirius/updates/releases/6.4.0/ for details.