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

Bug 395816

Summary: OCLInEcore editor throws Exception when openening meta model
Product: [Modeling] OCL Reporter: Ralph Gerbig <ralphgerbig>
Component: CoreAssignee: OCL Inbox <mdt-ocl-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: ed
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Ralph Gerbig CLA 2012-12-05 09:02:38 EST
I get the following exception when opening this model http://code.google.com/a/eclipselabs.org/p/melanie/source/browse/de.uni_mannheim.informatik.swt.models.plm/model/PLM.ecore with OCLInEcoreEditor:

java.lang.RuntimeException: Could not serialize EObject via backtracking.
Constraint: null (name=SINGLE_QUOTED_STRING | name=UnrestrictedName) (value+=ML_SINGLE_QUOTED_STRING | value+=SINGLE_QUOTED_STRING)* null
Values: name(1), value(1)
Semantic Object: RootPackageCS.ownedNestedPackage[0]->PackageCS'PLM'.ownedType[19]->ClassCS'Attribute'.ownedProperty[2]->AttributeCS'datatype'.ownedAnnotation[0]->AnnotationCS'http://swt.informatik.uni-mannheim.de/PLM/datatypes'.ownedDetail[7]->DetailCS'void'
Context: DetailCS

	at org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic$ExceptionThrowingAcceptor.accept(ISerializationDiagnostic.java:70)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:441)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.sequence_DetailCS(AbstractOCLinEcoreSemanticSequencer.java:761)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.createSequence(AbstractOCLinEcoreSemanticSequencer.java:120)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:299)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:325)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:239)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:394)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:439)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.sequence_AnnotationCS(AbstractOCLinEcoreSemanticSequencer.java:669)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.createSequence(AbstractOCLinEcoreSemanticSequencer.java:90)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:299)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:325)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:239)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:394)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:439)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.sequence_AttributeCS(AbstractOCLinEcoreSemanticSequencer.java:702)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.createSequence(AbstractOCLinEcoreSemanticSequencer.java:98)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:299)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:325)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:239)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:394)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:439)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.sequence_ClassCS(AbstractOCLinEcoreSemanticSequencer.java:728)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.createSequence(AbstractOCLinEcoreSemanticSequencer.java:106)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:299)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:325)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:239)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:394)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:439)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.sequence_PackageCS(AbstractOCLinEcoreSemanticSequencer.java:883)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.createSequence(AbstractOCLinEcoreSemanticSequencer.java:188)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:299)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:325)

	at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:239)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:394)

	at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:439)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.sequence_RootPackageCS(AbstractOCLinEcoreSemanticSequencer.java:965)

	at org.eclipse.ocl.examples.xtext.oclinecore.serializer.AbstractOCLinEcoreSemanticSequencer.createSequence(AbstractOCLinEcoreSemanticSequencer.java:241)

	at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:85)

	at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:108)

	at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:130)

	at org.eclipse.xtext.resource.XtextResource.doSave(XtextResource.java:316)

	at org.eclipse.ocl.examples.xtext.oclinecore.utilities.OCLinEcoreCSResource.doSave(OCLinEcoreCSResource.java:48)

	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1417)

	at org.eclipse.ocl.examples.xtext.oclinecore.ui.model.OCLinEcoreDocumentProvider.setDocumentContent(OCLinEcoreDocumentProvider.java:276)

	at org.eclipse.ui.editors.text.FileDocumentProvider.setDocumentContent(FileDocumentProvider.java:424)

	at org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.setDocumentContent(XtextDocumentProvider.java:186)

	at org.eclipse.ocl.examples.xtext.oclinecore.ui.model.OCLinEcoreDocumentProvider.setDocumentContent(OCLinEcoreDocumentProvider.java:203)

	at org.eclipse.ui.editors.text.StorageDocumentProvider.createDocument(StorageDocumentProvider.java:229)

	at org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createDocument(XtextDocumentProvider.java:131)

	at org.eclipse.ui.editors.text.FileDocumentProvider.createElementInfo(FileDocumentProvider.java:735)

	at org.eclipse.xtext.ui.editor.model.XtextDocumentProvider.createElementInfo(XtextDocumentProvider.java:239)

	at org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:400)

	at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4222)

	at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)

	at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1480)

	at org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:169)

	at org.eclipse.xtext.ui.editor.XtextEditor.doSetInput(XtextEditor.java:219)

	at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3209)

	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)

	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)

	at org.eclipse.ui.internal.WorkbenchWindow$13.run(WorkbenchWindow.java:1675)

	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:1672)

	at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3227)

	at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3254)

	at org.eclipse.xtext.ui.editor.XtextEditor.init(XtextEditor.java:240)

	at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:324)

	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:288)

	at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.lang.reflect.Method.invoke(Unknown Source)

	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)

	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:859)

	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:839)

	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:111)

	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:319)

	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:240)

	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:161)

	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:102)

	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:71)

	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:53)

	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:141)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:896)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:630)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:732)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:703)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:697)

	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:682)

	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1114)

	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:67)

	at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41)

	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:180)

	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)

	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4687)

	at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:187)

	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)

	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)

	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)

	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)

	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)

	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)

	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)

	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)

	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)

	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:81)

	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58)

	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)

	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)

	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:418)

	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:385)

	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:579)

	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:315)

	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:985)

	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3079)

	at org.eclipse.ui.internal.WorkbenchPage.access$22(WorkbenchPage.java:3003)

	at org.eclipse.ui.internal.WorkbenchPage$8.run(WorkbenchPage.java:2985)

	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2981)

	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2940)

	at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:338)

	at org.eclipse.ui.actions.OpenWithMenu$2.handleEvent(OpenWithMenu.java:180)

	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:4169)

	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1029)

	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:923)

	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)

	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588)

	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)

	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:353)

	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)

	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:629)

	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)

	at org.eclipse.equinox.launcher.Main.run(Main.java:1438)

	at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
Comment 1 Ed Willink CLA 2013-02-05 17:54:57 EST
The problem is that an embedded OCL expression ends with a comment, and so when the terminating ';' is appended the terminating ';' is commented too.

Workaround; add a new line at the emd of the commenrt or remove the commented out code.

[Developers note; the serialization speed of this example is dreadful. Worth comparing with Indigo and trying to isolate as an OCL or Xtext inadequacy.]
Comment 2 Ed Willink CLA 2013-02-05 17:56:41 EST
(In reply to comment #0)
> I get the following exception when opening this model

Exception not reproducible on M4; looks like an Xtext improvement.
Comment 3 Ed Willink CLA 2013-02-27 16:43:44 EST
(In reply to comment #2)
> (In reply to comment #0)
> > I get the following exception when opening this model
> 
> Exception not reproducible on M4; looks like an Xtext improvement.

Performance issue moved to Bug 401953.
Comment 4 Ed Willink CLA 2014-05-27 09:44:03 EDT
CLOSED after more than a year in RESOLVED state.
Comment 5 Ed Willink CLA 2014-05-27 09:52:37 EDT
and CLOSE