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

Bug 318828

Summary: Both 'org.eclipse.emf.ecore' and 'org.eclipse.stp.sca.csa' register a package for 'http://www.w3.org/XML/1998/namespace' !
Product: z_Archived Reporter: Nicolas Rouquette <nicolas.f.rouquette>
Component: STPAssignee: Stephane Drapeau <Stephane.Drapeau>
Status: ASSIGNED --- QA Contact: Oisin Hurley <oisin.hurley>
Severity: normal    
Priority: P3 CC: vpolovko
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
Proposed patch for org.eclipse.stp.sca.csa/edit/editor plugins none

Description Nicolas Rouquette CLA 2010-07-04 18:55:23 EDT
This problem causes all kinds of annoying exceptions, e.g:

!MESSAGE org.eclipse.stp.sca.csa.addressing.impl.AddressingFactoryImpl cannot be cast to org.eclipse.stp.sca.addressing.AddressingFactory
!STACK 0
java.lang.ClassCastException: org.eclipse.stp.sca.csa.addressing.impl.AddressingFactoryImpl cannot be cast to org.eclipse.stp.sca.addressing.AddressingFactory
	at org.eclipse.stp.sca.addressing.impl.AddressingFactoryImpl.init(AddressingFactoryImpl.java:52)
	at org.eclipse.stp.sca.addressing.AddressingFactory.<clinit>(AddressingFactory.java:29)
	at org.eclipse.stp.sca.addressing.impl.AddressingPackageImpl.<init>(AddressingPackageImpl.java:157)
	at org.eclipse.stp.sca.addressing.impl.AddressingPackageImpl.init(AddressingPackageImpl.java:191)
	at org.eclipse.stp.sca.addressing.AddressingPackage.<clinit>(AddressingPackage.java:63)
	at sawsdl.impl.SawsdlPackageImpl.init(SawsdlPackageImpl.java:127)
	at sawsdl.SawsdlPackage.<clinit>(SawsdlPackage.java:71)
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:918)
	at java.lang.reflect.Field.getFieldAccessor(Field.java:899)
	at java.lang.reflect.Field.get(Field.java:358)
	at org.eclipse.emf.ecore.plugin.RegistryReader$EPackageDescriptor.getEPackage(RegistryReader.java:274)
	at org.eclipse.m2m.internal.qvt.oml.emf.util.mmregistry.EmfMetamodelDesc.getModel(EmfMetamodelDesc.java:61)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowser.doCreateInput(MetamodelBrowser.java:502)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowser$5.run(MetamodelBrowser.java:473)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowser.createInput(MetamodelBrowser.java:471)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowser.<init>(MetamodelBrowser.java:168)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowser.<init>(MetamodelBrowser.java:145)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowserView$3.<init>(MetamodelBrowserView.java:111)
	at org.eclipse.m2m.internal.qvt.oml.common.ui.views.MetamodelBrowserView.createPartControl(MetamodelBrowserView.java:111)
	at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)
	at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)
	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.ViewPane.setVisible(ViewPane.java:529)
	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.Display.sendEvent(Display.java:3776)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1187)
	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.Display.sendEvent(Display.java:3776)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1367)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1390)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1187)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3622)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3277)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	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(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
	
It seems that the folks using Apache Tuscany have ran into similar registration conflicts:

http://people.apache.org/~lresende/tuscany/stp_tools.log

!ENTRY org.eclipse.emf.ecore 2 0 2010-03-15 21:21:53.589
!MESSAGE Both 'org.eclipse.emf.ecore' and 'org.eclipse.stp.sca.csa' register a package for 'http://www.w3.org/XML/1998/namespace'

!ENTRY org.eclipse.emf.ecore 2 0 2010-03-15 21:21:53.609
!MESSAGE Both 'org.eclipse.stp.sca' and 'org.eclipse.stp.sca.csa' register a package for 'http://www.w3.org/2005/08/addressing'

!ENTRY org.eclipse.emf.ecore 2 0 2010-03-15 21:21:53.641
!MESSAGE Both 'org.eclipse.stp.sca' and 'org.eclipse.stp.sca.csa' register an extension parser for 'composite'

!ENTRY org.eclipse.emf.ecore 2 0 2010-03-15 21:21:53.642
!MESSAGE Both 'org.eclipse.stp.sca' and 'org.eclipse.stp.sca.csa' register an extension parser for 'instance'

!ENTRY org.eclipse.emf.ecore 2 0 2010-03-15 21:21:53.642
!MESSAGE Both 'org.eclipse.stp.sca' and 'org.eclipse.stp.sca.csa' register an extension parser for 'addressing'

!ENTRY org.eclipse.emf.ecore 2 0 2010-03-15 21:21:53.642
!MESSAGE Both 'org.eclipse.stp.sca.csa.diagram' and 'org.eclipse.stp.sca.diagram' register an extension parser for 'composite_diagram'

We need a mechanism to specify for a given Eclipse extension point whether there are conflicts amongst all of the plugins included in a build with respect to the other plugins they depend on.

If someone can regenerate /org.eclipse.stp.sca.csa/model/csa.genmodel from scratch, then it fixing the conflict with org.eclipse.emf.ecore could be avoided by importing emf.ecore into the development workspace before creating the genmodel. This should provide emf.ecore's version of Namespace as an alternative to defining this package in stp.sca.csa.
Comment 1 Nicolas Rouquette CLA 2010-07-04 20:24:04 EDT
Created attachment 173384 [details]
Proposed patch for org.eclipse.stp.sca.csa/edit/editor plugins

I recreated csa.genmodel from csa.ecore using the org.eclipse.emf.ecore XMLNamespace.genmodel.

Unfortunately, org.eclipse.emf.ecore.edit lacks a provider factory for XMLNamespace whereas the original stp.sca.csa.edit plugin did.

If this is a problem, then a bug should be issued for org.eclipse.emf.ecore.edit to add one.
Comment 2 Stephane Drapeau CLA 2010-07-05 04:00:45 EDT
(In reply to comment #1)

Thanks Nicolas. I'll have a look.