Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » ChangeRecorder cannot be found by org.eclipse.emf.edit
ChangeRecorder cannot be found by org.eclipse.emf.edit [message #1841032] Fri, 30 April 2021 21:26 Go to next message
Jean-Baptiste Meyer is currently offline Jean-Baptiste MeyerFriend
Messages: 16
Registered: February 2021
Junior Member
Hello,

I'm completely stuck since several days.
I am doing a RAP application using Parsley deployed with equinox.

EMF Parsley allows to customize contextual menus when right clicking on a given node.

When doing so I do have the following stack trace :

!ENTRY org.eclipse.rap.ui 4 0 2021-04-30 23:08:37.655
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/emf/ecore/change/util/ChangeRecorder
at org.eclipse.emf.edit.command.ChangeCommand.createChangeRecorder(ChangeCommand.java:95)
at org.eclipse.emf.edit.command.ChangeCommand.execute(ChangeCommand.java:123)
at org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
at org.eclipse.emf.parsley.edit.action.EmfCommandAction.run(EmfCommandAction.java:60)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:493)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:575)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:492)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:403)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:109)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:687)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:594)
at org.eclipse.swt.widgets.Display.executeNextEvent(Display.java:1217)
at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1198)
at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1181)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1173)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2733)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2694)
at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2530)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:701)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:684)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157)

at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:177)
at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:290)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107)
Caused by: java.lang.ClassNotFoundException: org.eclipse.emf.ecore.change.util.ChangeRecorder cannot be found by org.eclipse.emf.edit_2.16.0.v20190920-0401
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:519)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 27 more

My equinox server is loaded with this two libraries.

When performing ss here are the bundles loaded
osgi> ss
"Framework is launched."


id State Bundle
0 ACTIVE org.eclipse.osgi_3.16.200.v20210226-1447
1 ACTIVE unknown_0.0.0 [1]
3 ACTIVE org.eclipse.equinox.http.registry_1.2.0.v20200614-1851
4 ACTIVE org.eclipse.jetty.server_9.4.37.v20210219
5 ACTIVE org.eclipse.jetty.util.ajax_9.4.37.v20210219
6 ACTIVE org.eclipse.osgi.services_3.10.0.v20210212-1137
7 ACTIVE org.eclipse.equinox.registry_3.10.100.v20210212-1143
8 ACTIVE org.apache.commons.lang3_3.10.0
9 ACTIVE com.google.guava_30.1.0.v20210127-2300
10 ACTIVE org.eclipse.core.commands_3.9.800.v20201021-1339
11 ACTIVE org.eclipse.rap.ui.forms_3.16.0.20210107-1310
12 ACTIVE org.eclipse.equinox.preferences_3.8.200.v20210212-1143
13 ACTIVE org.apache.commons.fileupload_1.3.2.v20170320-2229
14 ACTIVE org.eclipse.rap.jface.databinding_3.16.0.20210107-1310
15 ACTIVE org.apache.felix.gogo.shell_1.1.4.v20210111-1007
16 ACTIVE org.eclipse.equinox.http.servlet_1.7.0.v20210202-1229
17 ACTIVE org.apache.xmlbeans.xmlbeans_3.1.0
18 ACTIVE org.apache.poi.poi-ooxml_4.1.2
19 ACTIVE org.apache.felix.gogo.runtime_1.1.4.v20210111-1007
20 ACTIVE org.eclipse.equinox.console_1.4.300.v20210211-2058
21 ACTIVE org.eclipse.emf.parsley.rap_1.10.0.v20200415-1512
22 ACTIVE com.fasterxml.jackson.core.jackson-core_2.10.3
23 ACTIVE org.eclipse.emf.rap.common.ui_2.11.0.v20201230-0839
24 ACTIVE org.emfjson.jackson_1.3.0
25 ACTIVE javax.servlet_3.1.0.v201410161800
26 ACTIVE org.eclipse.rap.ui.workbench_3.16.0.20210107-1310
27 ACTIVE org.apache.commons.commons-collections4_4.4.0
28 ACTIVE org.eclipse.emf.edit_2.16.0.v20190920-0401
29 ACTIVE org.eclipse.emf.rap.edit.ui_2.11.0.v20180706-1146
30 ACTIVE org.eclipse.emf.ecore.edit_2.13.0.v20190822-1451
31 ACTIVE org.eclipse.rap.rwt.osgi_3.16.0.20210107-1310
32 ACTIVE org.eclipse.osgi.util_3.6.0.v20210212-1137
33 ACTIVE org.apache.poi.poi_4.1.2
34 ACTIVE org.eclipse.emf.databinding_1.5.0.v20180706-1146
35 ACTIVE org.apache.poi.poi-ooxml-schemas_4.1.2
36 ACTIVE org.eclipse.core.contenttype_3.7.900.v20210111-0918
37 ACTIVE org.eclipse.emf.parsley.common_1.10.0.v20200415-1512
38 ACTIVE org.eclipse.jetty.io_9.4.37.v20210219
39 ACTIVE org.eclipse.core.databinding.observable_1.10.0.v20200730-0848
40 ACTIVE org.eclipse.xtext.xbase.lib_2.25.0.v20210301-0821
41 ACTIVE org.eclipse.equinox.app_1.5.100.v20210212-1143
42 ACTIVE org.eclipse.core.runtime_3.20.100.v20210111-0815
43 ACTIVE com.fasterxml.jackson.core.jackson-annotations_2.10.3
44 ACTIVE org.eclipse.emf.parsley.rap.runtime_1.10.0.v20200415-1512
45 ACTIVE org.eclipse.emf.common_2.22.0.v20210114-1734
46 ACTIVE org.eclipse.core.jobs_3.10.1100.v20210111-0815
47 ACTIVE org.eclipse.equinox.common_3.14.100.v20210212-1143
48 ACTIVE org.eclipse.help_3.8.800.v20200525-0755
49 ACTIVE org.eclipse.core.expressions_3.7.100.v20210203-1000
50 ACTIVE org.eclipse.rap.fileupload_3.16.0.20210107-1425
51 ACTIVE com.ibm.icu_67.1.0.v20200706-1749
52 ACTIVE org.eclipse.emf.ecore_2.23.0.v20200630-0516
53 ACTIVE com.fasterxml.jackson.core.jackson-databind_2.10.3
54 ACTIVE org.eclipse.emf.parsley.rap.views_1.10.0.v20200415-1512
56 ACTIVE org.eclipse.equinox.http.jetty_3.7.600.v20210224-2143
57 ACTIVE org.apache.log4j_1.2.15.v201012070815
58 ACTIVE org.eclipse.jetty.util_9.4.37.v20210219
59 ACTIVE com.google.inject_3.0.0.v201605172100
60 ACTIVE org.eclipse.core.databinding.property_1.8.100.v20200619-0651
61 ACTIVE org.eclipse.core.databinding_1.10.100.v20200926-1123
62 ACTIVE org.eclipse.rap.filedialog_3.16.0.20210107-1310
63 ACTIVE javax.inject_1.0.0.v20091030
64 ACTIVE org.eclipse.rap.rwt_3.16.0.20210304-1215
65 ACTIVE org.eclipse.rap.ui.views_3.16.0.20210107-1310
66 ACTIVE org.eclipse.emf.ecore.xmi_2.16.0.v20190528-0725
67 ACTIVE org.eclipse.emf.parsley.views.common_1.10.0.v20200415-1512
68 ACTIVE org.eclipse.emf.parsley.runtime.common_1.10.0.v20200415-1512
69 ACTIVE javax.xml_1.3.4.v201005080400
70 ACTIVE org.eclipse.jetty.continuation_9.4.37.v20210219
71 ACTIVE org.apache.commons.commons-compress_1.19.0
72 ACTIVE org.eclipse.rap.jface_3.16.0.20210107-1310
73 ACTIVE org.eclipse.jetty.servlet_9.4.37.v20210219
74 ACTIVE org.eclipse.rap.ui_3.16.0.20210107-1310
75 ACTIVE org.apache.commons.io_2.6.0.v20190123-2029
76 ACTIVE org.eclipse.jetty.http_9.4.37.v20210219
77 ACTIVE org.eclipse.jetty.security_9.4.37.v20210219
78 ACTIVE org.apache.logging.log4j_2.8.2.v20200818-1118
79 ACTIVE org.eclipse.emf.databinding.edit_1.7.0.v20210113-0340
80 ACTIVE org.eclipse.emf.ecore.change_2.14.0.v20190528-0725
...
84 ACTIVE org.eclipse.emf.ecore.change.edit_2.8.0.v20180706-1146

I also have these two libraries in my Plugin-dependencies

I'm facing this issue while I'm starting the application within eclipse,

Here is the content of my launch file
....
<booleanAttribute key="org.eclipse.rap.launch.useDefaultDataLocation" value="true"/>
<booleanAttribute key="org.eclipse.rap.launch.useManualContextPath" value="false"/>
<booleanAttribute key="org.eclipse.rap.launch.useManualPort" value="false"/>
<booleanAttribute key="org.eclipse.rap.launch.useSessionTimeout" value="false"/>
<booleanAttribute key="pde.generated.config" value="true"/>
<stringAttribute key="pde.version" value="3.3"/>
<setAttribute key="selected_features">
<setEntry value="device-shape-generic-editor-feature:default"/>
<setEntry value="org.eclipse.emf.cdo:default"/>
<setEntry value="org.eclipse.emf.common.source:default"/>
<setEntry value="org.eclipse.emf.common:default"/>
<setEntry value="org.eclipse.emf.databinding.edit:default"/>
<setEntry value="org.eclipse.emf.databinding:default"/>
<setEntry value="org.eclipse.emf.ecore.edit.source:default"/>
<setEntry value="org.eclipse.emf.ecore.edit:default"/>
<setEntry value="org.eclipse.emf.ecore.source:default"/>
<setEntry value="org.eclipse.emf.ecore:default"/>
<setEntry value="org.eclipse.emf.edit.source:default"/>
<setEntry value="org.eclipse.emf.edit:default"/>
<setEntry value="org.eclipse.emf.parsley.rap.sdk.source:default"/>
<setEntry value="org.eclipse.emf.parsley.rap.sdk:default"/>
<setEntry value="org.eclipse.emf.query:default"/>
<setEntry value="org.eclipse.emf.rap.common.ui.source:default"/>
<setEntry value="org.eclipse.emf.rap.common.ui:default"/>
<setEntry value="org.eclipse.emf.rap.edit.ui.source:default"/>
<setEntry value="org.eclipse.emf.rap.edit.ui:default"/>
<setEntry value="org.eclipse.emf.rap.sdk:default"/>
<setEntry value="org.eclipse.emf.rap.source:default"/>
<setEntry value="org.eclipse.emf.rap:default"/>
<setEntry value="org.eclipse.net4j.db.h2:default"/>
<setEntry value="org.eclipse.net4j.db:default"/>
<setEntry value="org.eclipse.net4j.util.ui:default"/>
<setEntry value="org.eclipse.net4j.util:default"/>
<setEntry value="org.eclipse.net4j:default"/>
<setEntry value="org.eclipse.rap.equinox.target.feature:default"/>
<setEntry value="org.eclipse.rap.feature:default"/>
<setEntry value="org.eclipse.rap.sdk.feature:default"/>
<setEntry value="org.eclipse.xtext.xbase.lib:default"/>
</setAttribute>
<setAttribute key="selected_target_bundles">
<setEntry value="com.fasterxml.jackson.core.jackson-annotations@default:default"/>
<setEntry value="com.fasterxml.jackson.core.jackson-core@default:default"/>
<setEntry value="com.fasterxml.jackson.core.jackson-databind@default:default"/>
<setEntry value="com.google.guava@default:default"/>
<setEntry value="com.google.inject@default:default"/>
<setEntry value="com.ibm.icu@default:default"/>
<setEntry value="javax.inject@default:default"/>
<setEntry value="javax.servlet@default:default"/>
<setEntry value="javax.xml@default:default"/>
<setEntry value="org.apache.commons.commons-collections4@default:default"/>
<setEntry value="org.apache.commons.commons-compress@default:default"/>
<setEntry value="org.apache.commons.fileupload@default:default"/>
<setEntry value="org.apache.commons.io@default:default"/>
<setEntry value="org.apache.commons.lang3@default:default"/>
<setEntry value="org.apache.felix.gogo.runtime@default:default"/>
<setEntry value="org.apache.felix.gogo.shell@default:default"/>
<setEntry value="org.apache.log4j@default:default"/>
<setEntry value="org.apache.logging.log4j@default:default"/>
<setEntry value="org.apache.poi.poi-ooxml-schemas@default:default"/>
<setEntry value="org.apache.poi.poi-ooxml@default:default"/>
<setEntry value="org.apache.poi.poi@default:default"/>
<setEntry value="org.apache.xmlbeans.xmlbeans@default:default"/>
<setEntry value="org.eclipse.core.commands@default:default"/>
<setEntry value="org.eclipse.core.contenttype@default:default"/>
<setEntry value="org.eclipse.core.databinding.observable@default:default"/>
<setEntry value="org.eclipse.core.databinding.property@default:default"/>
<setEntry value="org.eclipse.core.databinding@default:default"/>
<setEntry value="org.eclipse.core.expressions@default:default"/>
<setEntry value="org.eclipse.core.jobs@default:default"/>
<setEntry value="org.eclipse.core.runtime@default:true"/>
<setEntry value="org.eclipse.emf.common*2.22.0.v20210114-1734@default:default"/>
<setEntry value="org.eclipse.emf.databinding.edit@default:default"/>
<setEntry value="org.eclipse.emf.databinding@default:default"/>
<setEntry value="org.eclipse.emf.ecore*2.23.0.v20200630-0516@default:default"/>
<setEntry value="org.eclipse.emf.ecore.change@default:default"/>
<setEntry value="org.eclipse.emf.ecore.change.edit@default:default"/>
<setEntry value="org.eclipse.emf.ecore.edit@default:default"/>
<setEntry value="org.eclipse.emf.ecore.xmi@default:default"/>
<setEntry value="org.eclipse.emf.edit@default:default"/>
<setEntry value="org.eclipse.emf.parsley.common@default:default"/>
<setEntry value="org.eclipse.emf.parsley.rap.runtime@default:default"/>
<setEntry value="org.eclipse.emf.parsley.rap.views@default:default"/>
<setEntry value="org.eclipse.emf.parsley.rap@default:default"/>
<setEntry value="org.eclipse.emf.parsley.runtime.common@default:default"/>
<setEntry value="org.eclipse.emf.parsley.views.common@default:default"/>
<setEntry value="org.eclipse.emf.rap.common.ui@default:default"/>
<setEntry value="org.eclipse.emf.rap.edit.ui@default:default"/>
<setEntry value="org.eclipse.equinox.app@default:default"/>
<setEntry value="org.eclipse.equinox.common@default:true"/>
<setEntry value="org.eclipse.equinox.console@default:default"/>
<setEntry value="org.eclipse.equinox.http.jetty@default:default"/>
<setEntry value="org.eclipse.equinox.http.registry@default:default"/>
<setEntry value="org.eclipse.equinox.http.servlet@default:default"/>
<setEntry value="org.eclipse.equinox.preferences@default:default"/>
<setEntry value="org.eclipse.equinox.registry@default:default"/>
<setEntry value="org.eclipse.help@default:default"/>
<setEntry value="org.eclipse.jetty.continuation@default:default"/>
<setEntry value="org.eclipse.jetty.http@default:default"/>
<setEntry value="org.eclipse.jetty.io@default:default"/>
<setEntry value="org.eclipse.jetty.security@default:default"/>
<setEntry value="org.eclipse.jetty.server@default:default"/>
<setEntry value="org.eclipse.jetty.servlet@default:default"/>
<setEntry value="org.eclipse.jetty.util.ajax@default:default"/>
<setEntry value="org.eclipse.jetty.util@default:default"/>
<setEntry value="org.eclipse.osgi.services@default:default"/>
<setEntry value="org.eclipse.osgi.util@default:default"/>
<setEntry value="org.eclipse.osgi@-1:true"/>
<setEntry value="org.eclipse.rap.filedialog@default:default"/>
<setEntry value="org.eclipse.rap.fileupload@default:default"/>
<setEntry value="org.eclipse.rap.jface.databinding@default:default"/>
<setEntry value="org.eclipse.rap.jface@default:default"/>
<setEntry value="org.eclipse.rap.rwt.osgi@default:default"/>
<setEntry value="org.eclipse.rap.rwt@default:default"/>
<setEntry value="org.eclipse.rap.ui.forms@default:default"/>
<setEntry value="org.eclipse.rap.ui.views@default:default"/>
<setEntry value="org.eclipse.rap.ui.workbench@default:default"/>
<setEntry value="org.eclipse.rap.ui@default:default"/>
<setEntry value="org.eclipse.xtext.xbase.lib@default:default"/>
<setEntry value="org.emfjson.jackson@default:default"/>
</setAttribute>
<setAttribute key="selected_workspace_bundles">
.....
</setAttribute>
<booleanAttribute key="show_selected_only" value="true"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfigArea" value="true"/>
....

Has someone get an idea when I'm facing this issue ? Is this a problem with the packaging of org.eclipse.emf.edit or something like that ?
Did someone already faced this issue or can someone can guide me ?

Thanks a lot,
JB

[Updated on: Sat, 01 May 2021 06:31]

Report message to a moderator

Re: ChangeRecorder cannot be found by org.eclipse.emf.edit [message #1841034 is a reply to message #1841032] Sat, 01 May 2021 06:09 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33142
Registered: July 2009
Senior Member
The org.eclipse.emf.edit plugin does have a dependency on org.eclipse.emf.ecore.change so as long as that bundle is launched, which appears to be the case below, the *.edit plugin should find the *.change classes:
Bundle-SymbolicName: org.eclipse.emf.edit; singleton:=true
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)";resolution:=optional;x-installation:=greedy,
 org.eclipse.emf.common;bundle-version="[2.17.0,3.0.0)";visibility:=reexport,
 org.eclipse.emf.ecore;bundle-version="[2.20.0,3.0.0)";visibility:=reexport,
 org.eclipse.emf.ecore.change;bundle-version="[2.14.0,3.0.0)";resolution:=optional;visibility:=reexport;x-installation:=greedy
So I don't see anything obviously wrong or missing.


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: ChangeRecorder cannot be found by org.eclipse.emf.edit [message #1841036 is a reply to message #1841034] Sat, 01 May 2021 06:26 Go to previous messageGo to next message
Jean-Baptiste Meyer is currently offline Jean-Baptiste MeyerFriend
Messages: 16
Registered: February 2021
Junior Member
Yes I verified the same way, that's why I don't understand the error
Re: ChangeRecorder cannot be found by org.eclipse.emf.edit [message #1841041 is a reply to message #1841036] Sat, 01 May 2021 12:20 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 7655
Registered: July 2009
Senior Member
Hi

Have you checked all the way down the stack trace?

Now that the platform has moved on to Java 11 bad class versions very deep down can trigger more mundane errors higher up. I've had a number of weird problems from trying to carry on using Java 8 or just continuing to specify Java 8 in a launch config.

Regards

Ed Willink
Re: ChangeRecorder cannot be found by org.eclipse.emf.edit [message #1841097 is a reply to message #1841041] Mon, 03 May 2021 19:42 Go to previous messageGo to next message
Jean-Baptiste Meyer is currently offline Jean-Baptiste MeyerFriend
Messages: 16
Registered: February 2021
Junior Member
Thanks for the suggestion, I'm using Java 11 (not with java 8) already and the stacktrace I provided is the full stack trace.
Re: ChangeRecorder cannot be found by org.eclipse.emf.edit [message #1841114 is a reply to message #1841097] Tue, 04 May 2021 09:46 Go to previous message
Jean-Baptiste Meyer is currently offline Jean-Baptiste MeyerFriend
Messages: 16
Registered: February 2021
Junior Member
Also one note
What is weird is
on my module I'm developing, I'm able to use the change recorder and the module is loaded and usable. When this ChangeRecorder is transitively called by the class ChangeCommand in org.eclipse.emf.edit it's failing with the given stack. Perhaps it is due to the order of osgi module load, module 80 is loaded after module 28 that's failing but I don't know how to control that in my config.ini. Changing the order in this file does not have any impact, and start level either.
Previous Topic:Ecore EDouble toString returns "Set{1.0}" instead of "1.0"
Next Topic:Scoping in EMF generated Editor
Goto Forum:
  


Current Time: Fri Apr 26 09:36:05 GMT 2024

Powered by FUDForum. Page generated in 0.03341 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top