Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Domain specification models created through 2.4.0 gets corrupted #131

Open
rahulbhadauriya opened this issue Nov 13, 2019 · 14 comments
Open

Comments

@rahulbhadauriya
Copy link

I have created domain specification model through lyo designer 2.4.0.

After restarting the eclipse, I am seeing the model corrupted.
All the resource shape I have in my domain spec model shows invalidinvalid as title. However when ever I click on it and see the properties , the names and properties are still valid.

Even after adding a new resource shap it as the same behaviour. i.e. invalidinvalid as title of the resource shape.
config domain spec model
See the attached screenshot for more details.
This is the second time I am facing this issue.

I have tried re- installing the Lyo 2.4.0 plugin again however the behaviour is same.

@rahulbhadauriya
Copy link
Author

Error logs seen in the eclipse are as follows:

eclipse.buildId=4.9.0.I20180906-0745
java.version=1.8.0_172
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64 -data
org.eclipse.ocl
Error
Wed Nov 13 19:56:34 IST 2019
Evaluation failed with an exception: (no message)

java.lang.NullPointerException
at org.eclipse.ocl.EvaluationVisitorImpl.visitVariableExp(EvaluationVisitorImpl.java:2285)
at org.eclipse.ocl.EvaluationVisitorDecorator.visitVariableExp(EvaluationVisitorDecorator.java:341)
at org.eclipse.ocl.ecore.impl.VariableExpImpl.accept(VariableExpImpl.java:248)
at org.eclipse.ocl.EvaluationVisitorImpl.visitPropertyCallExp(EvaluationVisitorImpl.java:2304)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitPropertyCallExp(AcceleoEvaluationVisitor.java:1246)
at org.eclipse.ocl.ecore.impl.PropertyCallExpImpl.accept(PropertyCallExpImpl.java:236)
at org.eclipse.ocl.EvaluationVisitorImpl.visitIteratorExp(EvaluationVisitorImpl.java:1804)
at org.eclipse.ocl.EvaluationVisitorDecorator.visitIteratorExp(EvaluationVisitorDecorator.java:235)
at org.eclipse.ocl.ecore.impl.IteratorExpImpl.accept(IteratorExpImpl.java:106)
at org.eclipse.ocl.AbstractEvaluationVisitor.visitExpression(AbstractEvaluationVisitor.java:242)
at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:150)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1974)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:1049)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitAcceleoQueryInvocation(AcceleoEvaluationVisitor.java:880)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1951)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:1049)
at org.eclipse.acceleo.model.mtl.impl.spec.QueryInvocationSpec.accept(QueryInvocationSpec.java:49)
at org.eclipse.ocl.EvaluationVisitorImpl.visitIteratorExp(EvaluationVisitorImpl.java:1804)
at org.eclipse.ocl.EvaluationVisitorDecorator.visitIteratorExp(EvaluationVisitorDecorator.java:235)
at org.eclipse.ocl.ecore.impl.IteratorExpImpl.accept(IteratorExpImpl.java:106)
at org.eclipse.ocl.AbstractEvaluationVisitor.visitExpression(AbstractEvaluationVisitor.java:242)
at org.eclipse.ocl.EvaluationVisitorDecorator.visitExpression(EvaluationVisitorDecorator.java:150)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.switchExpression(AcceleoEvaluationVisitor.java:1974)
at org.eclipse.acceleo.engine.internal.evaluation.AcceleoEvaluationVisitor.visitExpression(AcceleoEvaluationVisitor.java:1049)
at org.eclipse.ocl.internal.evaluation.QueryImpl.evaluate(QueryImpl.java:146)
at org.eclipse.ocl.ecore.QueryImpl.evaluate(QueryImpl.java:56)
at org.eclipse.acceleo.engine.generation.AcceleoEngine.doEvaluate(AcceleoEngine.java:411)
at org.eclipse.acceleo.engine.generation.AcceleoEngine.evaluate(AcceleoEngine.java:203)
at org.eclipse.acceleo.engine.service.AcceleoEvaluationTask.evaluateQuery(AcceleoEvaluationTask.java:122)
at org.eclipse.acceleo.engine.service.AcceleoEvaluationTask.call(AcceleoEvaluationTask.java:291)
at org.eclipse.sirius.common.acceleo.mtl.business.internal.interpreter.DynamicAcceleoModule.evaluate(DynamicAcceleoModule.java:537)
at org.eclipse.sirius.common.acceleo.mtl.business.internal.interpreter.AcceleoMTLInterpreter.internalEvaluate(AcceleoMTLInterpreter.java:1158)
at org.eclipse.sirius.common.acceleo.mtl.business.internal.interpreter.AcceleoMTLInterpreter.evaluateCollection(AcceleoMTLInterpreter.java:638)
at org.eclipse.sirius.tools.internal.interpreter.SessionInterpreter.evaluateCollection(SessionInterpreter.java:245)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DEdgeSynchronizerHelper.handleCandidatesFromSourceView(DEdgeSynchronizerHelper.java:253)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DEdgeSynchronizerHelper.computeEdgeCandidatesWithoutDomain(DEdgeSynchronizerHelper.java:226)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DEdgeSynchronizerHelper.computeNowEdgeCandidates(DEdgeSynchronizerHelper.java:93)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.computeEdgeCandidates(DDiagramSynchronizer.java:1000)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.createEdgeCandidates(DDiagramSynchronizer.java:1269)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refreshEdgeMapping(DDiagramSynchronizer.java:1221)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.processEdgeMappingsRefresh(DDiagramSynchronizer.java:469)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refreshOperation(DDiagramSynchronizer.java:391)
at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refresh(DDiagramSynchronizer.java:315)
at org.eclipse.sirius.diagram.business.internal.sync.DDiagramSynchronizer.refresh(DDiagramSynchronizer.java:91)
at org.eclipse.sirius.diagram.business.internal.dialect.DiagramDialectServices.refresh(DiagramDialectServices.java:243)
at org.eclipse.sirius.business.internal.dialect.DialectManagerImpl.refresh(DialectManagerImpl.java:104)
at org.eclipse.sirius.business.api.dialect.command.RefreshRepresentationsCommand.doExecute(RefreshRepresentationsCommand.java:122)
at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
at org.eclipse.emf.common.command.CompoundCommand.execute(CompoundCommand.java:261)
at org.eclipse.emf.common.command.CompoundCommand.execute(CompoundCommand.java:261)
at org.eclipse.emf.transaction.util.TriggerCommand.execute(TriggerCommand.java:113)
at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.executeTriggers(WorkspaceCommandStackImpl.java:398)
at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.precommit(TransactionalEditingDomainImpl.java:712)
at org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:414)
at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:155)
at org.eclipse.sirius.diagram.ui.tools.internal.commands.WrappingCommandIgnoringAffectedFiles.execute(WrappingCommandIgnoringAffectedFiles.java:123)
at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:491)
at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:71)
at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramCommandStack.execute(DDiagramCommandStack.java:52)
at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramCommandStack.execute(DiagramCommandStack.java:156)
at org.eclipse.gef.ui.actions.WorkbenchPartAction.execute(WorkbenchPartAction.java:83)
at org.eclipse.sirius.diagram.ui.tools.internal.actions.delete.DeleteWithHookAction.execute(DeleteWithHookAction.java:73)
at org.eclipse.gmf.runtime.diagram.ui.internal.actions.PromptingDeleteAction.run(PromptingDeleteAction.java:173)
at org.eclipse.gef.KeyHandler.performStroke(KeyHandler.java:83)
at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:55)
at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
at org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler.keyPressed(GraphicalViewerKeyHandler.java:355)
at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DiagramGraphicalViewerKeyHandler.keyPressed(DiagramGraphicalViewerKeyHandler.java:104)
at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59)
at org.eclipse.gmf.runtime.diagram.ui.internal.parts.DirectEditKeyHandler.keyPressed(DirectEditKeyHandler.java:89)
at org.eclipse.gef.tools.SelectionTool.handleKeyDown(SelectionTool.java:331)
at org.eclipse.gef.tools.PanningSelectionTool.handleKeyDown(PanningSelectionTool.java:161)
at org.eclipse.gmf.runtime.diagram.ui.services.palette.SelectionToolEx.handleKeyDown(SelectionToolEx.java:112)
at org.eclipse.gef.tools.AbstractTool.keyDown(AbstractTool.java:1016)
at org.eclipse.gef.tools.SelectionTool.keyDown(SelectionTool.java:491)
at org.eclipse.gef.EditDomain.keyDown(EditDomain.java:169)
at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchKeyPressed(DomainEventDispatcher.java:252)
at org.eclipse.draw2d.LightweightSystem$EventHandler.keyPressed(LightweightSystem.java:497)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:171)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4145)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1055)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1064)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1106)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1102)
at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1745)
at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:5160)
at org.eclipse.swt.widgets.Canvas.WM_KEYDOWN(Canvas.java:414)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4800)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:348)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4784)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2309)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3559)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:628)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:199)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:391)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:246)
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:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
at org.eclipse.equinox.launcher.Main.run(Main.java:1501)

@jadelkhoury
Copy link
Contributor

Hi

  1. Is your model a single file, or did you compose it from other files?

  2. What version of Eclipse are you using? Can you also work out the exact version of Lyo Designer you have installed?

  3. Is it possible to share the file, to see if I can open it from my end?

@rahulbhadauriya
Copy link
Author

Hi Jad,
Thanks for your reply.

Details are as follows:

Eclipse version:
Version: 2018-09 (4.9)
Build id: I20180906-0745

Lyo Designer version:
2.4.0
image

It's a single file I think. one toolchain.xml file and representations.aird . The only thing that is reference from outside is oslcDomainSpecifications.xml as a project dependency.

Not sure if this can be a configuration issue.

@berezovskyi
Copy link
Member

What are the versions of Acceleo and Sirius installed? Did you update Eclipse recently?

@rahulbhadauriya
Copy link
Author

What are the versions of Acceleo and Sirius installed? Did you update Eclipse recently?

Hi Andrew,
Thanks for looking into.

Here is the snap:
image

I have installed the eclipse Jetty plugin recently and found the Lyo Designer broken after that.
I suspect it might have update my eclipse too.

@berezovskyi
Copy link
Member

What about Sirius versions? Jetty should not have impact.

@rahulbhadauriya
Copy link
Author

What about Sirius versions? Jetty should not have impact.

All of them are 6.0.1.201808231529
image

@berezovskyi
Copy link
Member

Do your domain specs depend on any external spec? For example, lyo-domains? Did you by accident close that project or move the files on disk?

@berezovskyi
Copy link
Member

Sorry, just saw that you are using Lyo domains. Please double check the items I suggested.

@rahulbhadauriya
Copy link
Author

rahulbhadauriya commented Nov 14, 2019

@berezovskyi @jadelkhoury
I tried reverting my eclipse to older configuration from installation history however same issue still there.
After that I took a new eclipse and installed the Lyo 2.4.0 in it and imported the old project. I can see this working fine now. But we should find the root cause as this is second time I'm changing my eclipse to get the things working. It seems like after installing any new eclipse plugin , lyo designer stops behaving like this.
Thanks!

@jadelkhoury
Copy link
Contributor

To my surprise, I have the same problems running with Eclipse 2019-03. Also, these models worked before on that same installation. So nothing is wrong with your models, nor in the particular installation. Something is corrupting the installation over time. The models themselves are not corrupt either.

We have a similar issue reported in #75. So we do indeed need to have better control over our configuration.

But I wonder if these are all related to the Acceleo/EMF versions as reported in #75. It is promised that things should be better after 2019-06.

@rahulbhadauriya
Copy link
Author

I tried installing the Lyo designer 2.4.0 on Eclipse Oxygen as well previously and found that not working. I am also surprise to see tool chain and Adaptor interfaces still shown currently however the domain models only gets the behaviour of 'invalidinvalid' in the name and properties not shown as mentioned in this issue.

If you think sticking to very particulate version of Acceleo and Sirius can solve this then do we have any plans to address in future ? I also suspect that if the eclipse gets updates these versions might gets updated and created this issue.

@jadelkhoury
Copy link
Contributor

Hi

The domain models use some Acceleo code, to show the names of the resource shapes. And we're getting these problems when trying to render the names. The toolchain & adaptorInterface views don't have such logic, hence they are safe.
So, yes! this is "just" a rendering problem when trying to visualize the model. But of course, it is no good.

I need to work out how to control the versions of Sirius/Acceleo when we build and deploy versions of LyoDesigner. and like you, versions can get updated beyond our own control.

The most stable approach is probably to package LyoDesigner as a whole Eclipse product, that one can control.

@rahulbhadauriya
Copy link
Author

Hi

The domain models use some Acceleo code, to show the names of the resource shapes. And we're getting these problems when trying to render the names. The toolchain & adaptorInterface views don't have such logic, hence they are safe.
So, yes! this is "just" a rendering problem when trying to visualize the model. But of course, it is no good.

I need to work out how to control the versions of Sirius/Acceleo when we build and deploy versions of LyoDesigner. and like you, versions can get updated beyond our own control.

The most stable approach is probably to package LyoDesigner as a whole Eclipse product, that one can control.

Thanks Jad !

I have noticed that the new version of eclipse with Lyo 2.4.0 which is working fine do have same set of versions for Sirius/Acceleo which I have in non working eclipse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants