Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 370710 - EMF Compare : java.lang.NoClassDefFoundError: org/eclipse/uml2/uml/DestructionEvent
Summary: EMF Compare : java.lang.NoClassDefFoundError: org/eclipse/uml2/uml/Destructio...
Status: CLOSED FIXED
Alias: None
Product: EMFCompare
Classification: Modeling
Component: Core (show other bugs)
Version: 1.3   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: EMF Compare CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 370143
Blocks:
  Show dependency tree
 
Reported: 2012-02-06 07:43 EST by Vincent Lorenzo CLA
Modified: 2013-01-17 08:32 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 Vincent Lorenzo CLA 2012-02-06 07:43:30 EST
When I compare 2 UML files, I get an error with org/eclipse/uml2/uml/DestructionEvent. I think it is because you try to instanciate a class which doesn't exist in the new UML Version which is used in Indigo.

I tested with the version of the 31th of January.

Steps to reproduce : 
	1/ Create 2 uml file (with 1 package and 1 class for example)
	2/ Compare the 2 files
	3/ You get the following exception
java.lang.reflect.InvocationTargetException
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421)
	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
	at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
	at org.eclipse.ui.internal.progress.ProgressManager$3.run(ProgressManager.java:960)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:995)
	at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:970)
	at org.eclipse.emf.compare.ui.internal.ModelComparator.doResourceCompare(ModelComparator.java:357)
	at org.eclipse.emf.compare.ui.internal.ModelComparator.compare(ModelComparator.java:275)
	at org.eclipse.emf.compare.ui.viewer.structure.ModelStructureContentProvider.inputChanged(ModelStructureContentProvider.java:183)
	at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:276)
	at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
	at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:277)
	at org.eclipse.compare.internal.CompareStructureViewerSwitchingPane.setInput(CompareStructureViewerSwitchingPane.java:132)
	at org.eclipse.compare.CompareEditorInput.feedInput(CompareEditorInput.java:747)
	at org.eclipse.compare.CompareEditorInput.createContents(CompareEditorInput.java:555)
	at org.eclipse.compare.internal.CompareEditor.createCompareControl(CompareEditor.java:462)
	at org.eclipse.compare.internal.CompareEditor.access$6(CompareEditor.java:422)
	at org.eclipse.compare.internal.CompareEditor$4.run(CompareEditor.java:490)
	at org.eclipse.swt.widgets.Display.runTimer(Display.java:4266)
	at org.eclipse.swt.widgets.Display.messageProc(Display.java:3353)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2545)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:999)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:893)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:85)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:579)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:534)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	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:352)
	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:624)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1433)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/uml2/uml/DestructionEvent
	at org.eclipse.emf.compare.uml2.diff.internal.extension.sequence.UMLDestructionEventChangeLeftTargetFactory.handles(UMLDestructionEventChangeLeftTargetFactory.java:50)
	at org.eclipse.emf.compare.uml2.diff.UML2DiffEngine.applyManagedTypes(UML2DiffEngine.java:166)
	at org.eclipse.emf.compare.uml2.diff.UML2DiffEngine.postProcess(UML2DiffEngine.java:95)
	at org.eclipse.emf.compare.uml2.diff.UML2DiffEngine.doDiff(UML2DiffEngine.java:62)
	at org.eclipse.emf.compare.diff.service.DiffService.doDiff(DiffService.java:118)
	at org.eclipse.emf.compare.ui.internal.ModelComparator$2.run(ModelComparator.java:374)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.lang.ClassNotFoundException: org.eclipse.uml2.uml.DestructionEvent
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 7 more
Root exception:
java.lang.NoClassDefFoundError: org/eclipse/uml2/uml/DestructionEvent
	at org.eclipse.emf.compare.uml2.diff.internal.extension.sequence.UMLDestructionEventChangeLeftTargetFactory.handles(UMLDestructionEventChangeLeftTargetFactory.java:50)
	at org.eclipse.emf.compare.uml2.diff.UML2DiffEngine.applyManagedTypes(UML2DiffEngine.java:166)
	at org.eclipse.emf.compare.uml2.diff.UML2DiffEngine.postProcess(UML2DiffEngine.java:95)
	at org.eclipse.emf.compare.uml2.diff.UML2DiffEngine.doDiff(UML2DiffEngine.java:62)
	at org.eclipse.emf.compare.diff.service.DiffService.doDiff(DiffService.java:118)
	at org.eclipse.emf.compare.ui.internal.ModelComparator$2.run(ModelComparator.java:374)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.lang.ClassNotFoundException: org.eclipse.uml2.uml.DestructionEvent
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 7 more
Comment 1 Cedric Brun CLA 2012-02-07 04:36:01 EST
I can't reproduce on Indigo but quite easily with the Juno stream.So far EMF compare is not compiling on Juno because :
- Papyrus did change most of their plugin ID's, we need to reflect that change
- UML implementation has been updated.

I have a first patch making everything compile on Juno, the problem is these changes means we won't have a single compare source tree compatible with several Eclipse versions like we used to have :/

We'll release a 1.3 quite soon (around march) as such we'll create it's dedicated stream and move the master to 2.0.
Comment 2 Vincent Lorenzo CLA 2012-02-09 06:01:36 EST
When will you provide a nightly build for Juno with these corrections? 
I need them to do a development and I would like do it before Eclipse Juno M6.
Comment 3 Cedric Brun CLA 2012-03-07 10:53:02 EST
We're still working on it but I need more information to make sure everything goes smoothly on your side.

The Juno release for EMF compare is the 2.0 and is going to change pretty much every API we have right now. 
What kind of API are you expecting to do your work ? In which kind of use case ?

On the other hand the 1.3 release (just branched) is targeting Indigo and we can't build an 1.3 release both compatible with Juno and Indigo because of the renaming which happened in Papyrus. 

In a nutshell, do you need the final Juno APIs or a 1.3+ (which would be 1.4) which is the 1.3 stream built on top of Juno ? We could do that but you have to be aware it's not going to be the version aggregated in the Juno repository.
Comment 4 Cedric Brun CLA 2012-03-07 12:54:12 EST
The code is compiling with Papyrus M5 now, but not with the papyrus nightly update site. If I'm not mistaken you're part of the Papyrus team so I'll just ask  here : where could I find back  org.eclipse.papyrus.uml.diagram.common.editpolicies.IMaskManagedLabelEditPolicy which was in the diagram.common plugin during M5 ? Any pointer ?
Comment 5 Cedric Brun CLA 2012-03-08 03:55:36 EST
Never mind, found it here :
org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.IMaskManagedLabelEditPolicy
Comment 6 Cedric Brun CLA 2012-03-08 12:01:10 EST
The build is here : https://hudson.eclipse.org/hudson/job/emf-compare-master/167/
Comment 7 Laurent Goubet CLA 2013-01-17 08:32:55 EST
batch-closing a bunch of "RESOLVED" bugs.