| Summary: | A3 Queries call from odesign don't seems more supported | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] Sirius | Reporter: | Esteban DUGUEPEROUX <esteban.dugueperoux> | ||||||
| Component: | Core | Assignee: | Laurent Redor <laurent.redor> | ||||||
| Status: | CLOSED FIXED | QA Contact: | Maxime Porhel <maxime.porhel> | ||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | laurent.redor, maxime.porhel, pierre-charles.david | ||||||
| Version: | unspecified | Keywords: | triaged | ||||||
| Target Milestone: | 4.0.0M7 | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| See Also: |
https://git.eclipse.org/r/68217 https://git.eclipse.org/r/68218 https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=7b6dac390119069e35f8760d1fa360bba4d53a92 https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b81b53cf852ab0e53169684eedfab83b54ea9a0b https://git.eclipse.org/r/72369 https://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=e4fd6945a5cbc9ec4e0cfdccfeb719be4a967ea5 |
||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
I can not reproduce the issue on master. You mention "a diagram created with Sirius 2.0.x ", but which version where you using yourself? Created attachment 260257 [details]
Modeling Project to reproduce
In attachement the Modeling Project containing the diagram coming from Sirius 2.0.x for which the diagram opening throws the stacktrace.
I reproduce on current master (de35505b28c6c6f5d583f3616950708e36b02b73) with the attached example. New Gerrit change created: https://git.eclipse.org/r/68217 New Gerrit change created: https://git.eclipse.org/r/68218 There are two issues: * The sample VSM registers the A3 queries with a syntax that contains the ".mtl" file extension at the end. It is not needed, as we are not refering to a physical file but to the logical qualified name of an MTL module. https://git.eclipse.org/r/68218 clarifies the documentation about this. * The criterion used in JavaExtensionManager to decide if a string represents the qualified name of a Java class was too simple, as it only tested if the name contained a ".", hence the attempt to load "fr::obeo::dsl::relational::design::queries.mtl" as a Java class, and the resulting warning. https://git.eclipse.org/r/68217 uses a more robust way to detect a valid Java class name. Gerrit change https://git.eclipse.org/r/68218 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=7b6dac390119069e35f8760d1fa360bba4d53a92 Gerrit change https://git.eclipse.org/r/68217 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b81b53cf852ab0e53169684eedfab83b54ea9a0b This is actually resolved. New Gerrit change created: https://git.eclipse.org/r/72369 The above gerrit is the test for this bug. After merge, the "needtest" keyword in whiteboard can be removed. Gerrit change https://git.eclipse.org/r/72369 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=e4fd6945a5cbc9ec4e0cfdccfeb719be4a967ea5 The test was added by e4fd6945a5cbc9ec4e0cfdccfeb719be4a967ea5. Validated on Sirius 4.0.0.201605180923 (4.0.0 RC1) Available in Sirius 4.0.0. |
Created attachment 260244 [details] Sample projects to reproduce On master, while specifier documentation of Sirius tells that A3 query call is supported from odesign, in "Using Acceleo" section of "Queries and Interpreted Expressions" part, fourth paragraph, when opening a diagram created with Sirius 2.0.x whose odesign use A3 queries I get the following exception : !ENTRY org.eclipse.sirius.common 2 0 2016-03-11 11:16:18.865 !MESSAGE Could not find Java extension class fr::obeo::dsl::relational::design::queries.mtl !STACK 0 java.lang.RuntimeException at org.eclipse.sirius.common.tools.internal.interpreter.ServiceInterpreter$1.notFound(ServiceInterpreter.java:83) at org.eclipse.sirius.common.tools.api.interpreter.JavaExtensionsManager.notFound(JavaExtensionsManager.java:539) at org.eclipse.sirius.common.tools.api.interpreter.JavaExtensionsManager.loadJavaExtensions(JavaExtensionsManager.java:532) at org.eclipse.sirius.common.tools.api.interpreter.JavaExtensionsManager.reloadIfNeeded(JavaExtensionsManager.java:241) at org.eclipse.sirius.common.tools.internal.interpreter.ServiceInterpreter.evaluate(ServiceInterpreter.java:127) at org.eclipse.sirius.common.tools.internal.interpreter.AbstractInterpreter.evaluateString(AbstractInterpreter.java:113) at org.eclipse.sirius.tools.internal.interpreter.ODesignGenericInterpreter.evaluateString(ODesignGenericInterpreter.java:188) at org.eclipse.sirius.diagram.business.internal.metamodel.helper.DiagramElementMappingHelper.computeLabel(DiagramElementMappingHelper.java:116) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramElementSynchronizer.computeLabel(DDiagramElementSynchronizer.java:833) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramElementSynchronizer.refresh(DDiagramElementSynchronizer.java:559) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramElementSynchronizer.refresh(DDiagramElementSynchronizer.java:509) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramElementSynchronizer.createNewNode(DDiagramElementSynchronizer.java:176) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramElementSynchronizer.createNewNode(DDiagramElementSynchronizer.java:150) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.createNewContent(DDiagramSynchronizer.java:1272) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.createNewContent(DDiagramSynchronizer.java:1260) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refreshContainerMapping(DDiagramSynchronizer.java:816) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refreshMappingsInContainerMapping(DDiagramSynchronizer.java:862) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refreshContainerMapping(DDiagramSynchronizer.java:832) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refreshOperation(DDiagramSynchronizer.java:415) at org.eclipse.sirius.diagram.business.internal.experimental.sync.DDiagramSynchronizer.refresh(DDiagramSynchronizer.java:355) 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:259) at org.eclipse.sirius.business.internal.dialect.DialectManagerImpl.refresh(DialectManagerImpl.java:124) at org.eclipse.sirius.business.internal.dialect.DialectManagerImpl.refresh(DialectManagerImpl.java:112) at org.eclipse.sirius.diagram.ui.business.internal.command.RefreshDiagramOnOpeningCommand.doExecute(RefreshDiagramOnOpeningCommand.java:62) 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.workspace.EMFCommandOperation.doExecute(EMFCommandOperation.java:119) at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:488) at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.doExecute(WorkspaceCommandStackImpl.java:208) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.launchRefresh(DDiagramEditorImpl.java:1246) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.initializeGraphicalViewer(DDiagramEditorImpl.java:1413) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createOriginalGraphicalViewer(DDiagramEditorImpl.java:1385) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createMainDiagramSection(DDiagramEditorImpl.java:1311) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createGraphicalViewer(DDiagramEditorImpl.java:1300) at org.eclipse.gef.ui.parts.GraphicalEditor.createPartControl(GraphicalEditor.java:171) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor.createPartControl(DiagramEditor.java:1580) at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditorWithFlyOutPalette.createPartControl(DiagramEditorWithFlyOutPalette.java:328) at org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor.createPartControl(DiagramDocumentEditor.java:1514) at org.eclipse.sirius.diagram.ui.tools.internal.editor.DDiagramEditorImpl.createPartControl(DDiagramEditorImpl.java:497) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:151) at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:99) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:341) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:54) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:966) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:931) at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:151) at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:375) at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:294) at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:972) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:648) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:754) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:725) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:719) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:703) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1306) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:72) at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4646) at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:211) at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201) 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:92) at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:60) 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:173) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:663) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:627) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:747) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:396) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1191) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3261) at org.eclipse.ui.internal.WorkbenchPage.access$25(WorkbenchPage.java:3176) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:3158) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3153) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3117) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3098) at org.eclipse.sirius.diagram.ui.business.internal.dialect.DiagramDialectUIServices$1.run(DiagramDialectUIServices.java:207) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4646) at org.eclipse.sirius.common.ui.tools.api.util.EclipseUIUtil.displaySyncExec(EclipseUIUtil.java:336) at org.eclipse.sirius.diagram.ui.business.internal.dialect.DiagramDialectUIServices.openEditor(DiagramDialectUIServices.java:217) at org.eclipse.sirius.diagram.ui.business.internal.dialect.DiagramDialectUIServices.openEditor(DiagramDialectUIServices.java:178) at org.eclipse.sirius.ui.business.internal.dialect.DialectUIManagerImpl.openEditor(DialectUIManagerImpl.java:106) at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction.openRepresentations(OpenRepresentationsAction.java:118) at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction.access$1(OpenRepresentationsAction.java:97) at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction$1.run(OpenRepresentationsAction.java:83) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:460) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:368) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:481) at org.eclipse.ui.internal.progress.ProgressManager$RunnableWithStatus.run(ProgressManager.java:1248) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:1098) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4646) at org.eclipse.ui.internal.progress.ProgressManager.runInUI(ProgressManager.java:1095) at org.eclipse.sirius.ui.tools.internal.actions.session.OpenRepresentationsAction.run(OpenRepresentationsAction.java:86) at org.eclipse.sirius.ui.tools.internal.views.common.navigator.OpenRepresentationListener.doubleClick(OpenRepresentationListener.java:42) at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:833) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173) at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:830) at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1470) at org.eclipse.ui.navigator.CommonViewer.handleDoubleSelect(CommonViewer.java:443) at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1264) at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:252) at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:249) at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:311) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4494) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1339) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3832) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3443) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1118) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1019) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:157) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:691) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:609) at org.eclipse.equinox.launcher.Main.run(Main.java:1516) at org.eclipse.equinox.launcher.Main.main(Main.java:1489)