Community
Participate
Working Groups
+++ This bug was initially created as a clone of Bug #519117 +++ In my odesign, I defined a creation tool which calls a dialog to propose to the end user to set some values on the newly created element. I clicked on the tool from the palette and then select the diagram, the dialog opens, if no values are edited in the dialog, the element is created where I had clicked. If I update some values in the dialog, then the element is not created where I clicked but somewhere else in the diagram. After having a look on debug this seems to be due to a flush of the layout data due to the recording command executions done by the dialog. See the following stacktrace for details: Thread [main] (Suspended) SiriusLayoutDataManagerImpl.flushRootLayoutDatas() line: 849 SiriusLayoutDataFlusher.historyNotification(OperationHistoryEvent) line: 53 DefaultOperationHistory$2.run() line: 870 SafeRunner.run(ISafeRunnable) line: 42 DefaultOperationHistory.notifyListeners(OperationHistoryEvent) line: 859 DefaultOperationHistory.notifyDone(IUndoableOperation) line: 925 DefaultOperationHistory.execute(IUndoableOperation, IProgressMonitor, IAdaptable) line: 504 WorkspaceCommandStackImpl.doExecute(Command, Map<?,?>) line: 208 WorkspaceCommandStackImpl(AbstractTransactionalCommandStack).execute(Command, Map<?,?>) line: 165 WorkspaceCommandStackImpl(AbstractTransactionalCommandStack).execute(Command) line: 219 TransactionalEditingDomainContextAdapter.performModelChange(Runnable) line: 124 EditingContextAdapterWrapper.performModelChange(Runnable) line: 56 EEFCheckboxController.updateValue(boolean) line: 67 EEFCheckboxLifecycleManager.lambda$1(SelectionEvent) line: 165 331286548.accept(Object) line: not available SWTUtils$1.widgetSelected(SelectionEvent) line: 54 TypedListener.handleEvent(Event) line: 249 EventTable.sendEvent(Event) line: 84 Display.sendEvent(EventTable, Event) line: 5227 Button(Widget).sendEvent(Event) line: 1340 Display.runDeferredEvents() line: 4561 Display.readAndDispatch() line: 4151 PropertiesFormDialog(Window).runEventLoop(Shell) line: 818 PropertiesFormDialog(Window).open() line: 794 DialogTask.lambda$0(SiriusInputDescriptor, IVariableManager, SiriusInterpreter, DialogModelOperation) line: 125 1545609928.accept(Object) line: not available Optional<T>.ifPresent(Consumer<? super T>) line: 159 DialogTask.execute() line: 103 ExecuteToolOperationTask.executeTask(ICommandTask, CommandContext) line: 127 ExecuteToolOperationTask.executeTask(ICommandTask, CommandContext) line: 138 ExecuteToolOperationTask.executeTask(ICommandTask, CommandContext) line: 138 ExecuteToolOperationTask.executeTask(ICommandTask, CommandContext) line: 138 ExecuteToolOperationTask.execute() line: 111 TaskExecutor.execute(List<ICommandTask>) line: 64 SiriusCommand.doExecute() line: 80 SiriusCommand(RecordingCommand).execute() line: 135 GMFCommandWrapper.doExecuteWithResult(IProgressMonitor, IAdaptable) line: 102 GMFCommandWrapper(AbstractTransactionalCommand).doExecute(IProgressMonitor, IAdaptable) line: 247 GMFCommandWrapper(AbstractEMFOperation).execute(IProgressMonitor, IAdaptable) line: 150 CompositeCommand.doExecuteWithResult(IProgressMonitor, IAdaptable) line: 403 CompositeCommand(AbstractCommand).execute(IProgressMonitor, IAdaptable) line: 134 WrappingCommandIgnoringAffectedFiles.execute(IProgressMonitor, IAdaptable) line: 124 DefaultOperationHistory.execute(IUndoableOperation, IProgressMonitor, IAdaptable) line: 488 DDiagramCommandStack.execute(ICommand, IProgressMonitor) line: 71 DDiagramCommandStack.execute(Command, IProgressMonitor) line: 52 DDiagramCommandStack(DiagramCommandStack).execute(Command) line: 156 CreationTool(AbstractTool).executeCommand(Command) line: 425 CreationTool(AbstractTool).executeCurrentCommand() line: 438 CreationTool(CreationTool).performCreation(int) line: 269 CreationTool(CreationTool).handleButtonUp(int) line: 189 CreationTool(AbstractTool).mouseUp(MouseEvent, EditPartViewer) line: 1200 DiagramEditDomain(EditDomain).mouseUp(MouseEvent, EditPartViewer) line: 301 DomainEventDispatcher.dispatchMouseReleased(MouseEvent) line: 380 LightweightSystem$EventHandler.mouseUp(MouseEvent) line: 548 TypedListener.handleEvent(Event) line: 221 EventTable.sendEvent(Event) line: 84 Display.sendEvent(EventTable, Event) line: 5227 FigureCanvas(Widget).sendEvent(Event) line: 1340 Display.runDeferredEvents() line: 4561 Display.readAndDispatch() line: 4151 PartRenderingEngine$4.run() line: 1121 Realm.runWithDefault(Realm, Runnable) line: 336 PartRenderingEngine.run(MApplicationElement, IEclipseContext) line: 1022 E4Workbench.createAndRunUI(MApplicationElement) line: 150 Workbench$5.run() line: 693 Realm.runWithDefault(Realm, Runnable) line: 336 Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 610 PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 148 IDEApplication.start(IApplicationContext) line: 138 EclipseAppHandle.run(Object) line: 196 EclipseAppLauncher.runApplication(Object) line: 134 EclipseAppLauncher.start(Object) line: 104 EclipseStarter.run(Object) line: 388 EclipseStarter.run(String[], Runnable) line: 243 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 498 Main.invokeFramework(String[], URL[]) line: 673 Main.basicRun(String[]) line: 610 Main.run(String[]) line: 1519 Main.main(String[]) line: 1492
Clone to report the fix on v5.0.x branch.
New Gerrit change created: https://git.eclipse.org/r/103154
New Gerrit change created: https://git.eclipse.org/r/103383
New Gerrit change created: https://git.eclipse.org/r/103387
Gerrit change https://git.eclipse.org/r/103387 was merged to [v5.0.x]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=4d6250b153073d1ea29c88b331785a1bf2f46725
Fixed by 4d6250b153073d1ea29c88b331785a1bf2f46725. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=519117#c1 for the steps to reproduce.
Available in Sirius 5.0.2.