[CDO] Reject change in conflict [message #1854821] |
Tue, 13 September 2022 08:46 |
Wilbert Alberts Messages: 209 Registered: June 2010 |
Senior Member |
|
|
Hi,
I am making some small steps with CDO (to discover what it can do). I created a metamodel describing a very simple feature modeling language. I created a model and have been able to persist it in a CDO repository. Then I did the following:
T1: checkout, create a feature family calling it Modem, and save it
T2: create a second checkout
T3, in second checkout: change the name of the feature familly to ModemThing (but did not save it)
T4: in first checkout: change the name of the feature familiy to ModemType, and save it.
At this moment, the ModemThing name in the second checkout becomes red. A conflict (obviously). When I try to save it, the environment prompts me to merge the change (to resolve the conflict). However, in the merge window, I *have* to accept the ModemType name first. If I reject (the incoming) change and choose commit, the model still needs 'saving' and any attempt to do so leads to the 'merge the change' dialog.
So I understand that a conflict can occur but I need to know how to reject (some) incoming changes because accepting them and then changing them again might be too much work, too complicated in some future situations. How can this be accomplished?
Regards,
Wilbert.
|
|
|
Re: [CDO] Reject change in conflict [message #1855799 is a reply to message #1854821] |
Thu, 03 November 2022 18:19 |
|
Hi Wilbert,
sorry that I reply so late! It was kind of hard to understand your steps because I have no clue about your model. For the future it would be easier to use our test or example models to reproduce a problem.
When I tried to execute your steps (with our example "company" model) I noticed a stacktrace on the console:
!MESSAGE Conflicting handlers for org.eclipse.compare.copyAllRightToLeft: {ActionHandler(org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.CompareToolBar$ActionWrapper@e870ac9)} vs {ActionHandler(org.eclipse.compare.contentmergeviewer.ContentMergeViewer$3@6b78cbee)} in: org.eclipse.ui.contexts.dialog
!STACK 0
java.lang.IllegalStateException: Conflicting handlers: {[ActionHandler(org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.CompareToolBar$ActionWrapper@e870ac9), for 'org.eclipse.compare.copyAllRightToLeft', in WorkbenchContext, activeWhen=ActiveShellExpression(Shell {Merge repo2 from MAIN into MAIN} [layout=GridLayout {numColumns=5 verticalSpacing=5}]), active=true, sourcePriority=17408, participating=true]} vs {[ActionHandler(org.eclipse.compare.contentmergeviewer.ContentMergeViewer$3@6b78cbee), for 'org.eclipse.compare.copyAllRightToLeft', in WorkbenchContext, activeWhen=ActiveShellExpression(Shell {Merge repo2 from MAIN into MAIN} [layout=GridLayout {numColumns=5 verticalSpacing=5}]), active=true, sourcePriority=17408, participating=true]} in: org.eclipse.ui.contexts.dialog
at org.eclipse.ui.internal.handlers.LegacyHandlerService$HandlerSelectionFunction.compute(LegacyHandlerService.java:145)
at org.eclipse.e4.core.internal.contexts.ValueComputation.get(ValueComputation.java:70)
at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:265)
at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:276)
at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:230)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.lookUpHandler(HandlerServiceImpl.java:103)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.handlerChanged(E4HandlerProxy.java:114)
at org.eclipse.core.commands.AbstractHandler.fireHandlerChanged(AbstractHandler.java:77)
at org.eclipse.jface.commands.ActionHandler.lambda$0(ActionHandler.java:81)
at org.eclipse.jface.action.AbstractAction.firePropertyChange(AbstractAction.java:52)
at org.eclipse.jface.action.AbstractAction.firePropertyChange(AbstractAction.java:75)
at org.eclipse.jface.action.Action.setEnabled(Action.java:541)
at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.updateToolItems(ContentMergeViewer.java:1105)
at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateToolItems(TextMergeViewer.java:4184)
at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.initializeToolbars(ContentMergeViewer.java:951)
at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.buildControl(ContentMergeViewer.java:873)
at org.eclipse.compare.contentmergeviewer.TextMergeViewer.<init>(TextMergeViewer.java:1626)
at org.eclipse.compare.contentmergeviewer.TextMergeViewer.<init>(TextMergeViewer.java:1509)
at org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.text.EMFCompareTextMergeViewer.<init>(EMFCompareTextMergeViewer.java:106)
at org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.text.EMFCompareTextMergeViewerCreator.createViewer(EMFCompareTextMergeViewerCreator.java:35)
at org.eclipse.compare.internal.ViewerDescriptor.createViewer(ViewerDescriptor.java:66)
at org.eclipse.compare.internal.CompareUIPlugin.getViewer(CompareUIPlugin.java:1107)
at org.eclipse.compare.internal.CompareUIPlugin.findContentViewer(CompareUIPlugin.java:1102)
at org.eclipse.compare.CompareUI.findContentViewer(CompareUI.java:338)
at org.eclipse.compare.CompareEditorInput.findContentViewer(CompareEditorInput.java:916)
at org.eclipse.compare.internal.CompareContentViewerSwitchingPane.getViewer(CompareContentViewerSwitchingPane.java:99)
at org.eclipse.compare.CompareViewerSwitchingPane.setInput(CompareViewerSwitchingPane.java:257)
at org.eclipse.compare.internal.CompareContentViewerSwitchingPane.setInput(CompareContentViewerSwitchingPane.java:202)
at org.eclipse.compare.CompareEditorInput.internalSetContentPaneInput(CompareEditorInput.java:806)
at org.eclipse.compare.CompareEditorInput.lambda$8(CompareEditorInput.java:754)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
at org.eclipse.compare.CompareEditorInput.feed1(CompareEditorInput.java:742)
at org.eclipse.compare.CompareEditorInput.lambda$4(CompareEditorInput.java:640)
at org.eclipse.compare.CompareViewerPane.open(CompareViewerPane.java:312)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:800)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:797)
at org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractStructuredViewerWrapper.access$6(AbstractStructuredViewerWrapper.java:1)
at org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractStructuredViewerWrapper$5.open(AbstractStructuredViewerWrapper.java:144)
at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:800)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:797)
at org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.WrappableTreeViewer.fireOpen(WrappableTreeViewer.java:868)
at org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.Navigatable.fireOpen(Navigatable.java:126)
at org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.Navigatable$1.run(Navigatable.java:70)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3984)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3600)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.compare.internal.CompareDialog.open(CompareDialog.java:187)
at org.eclipse.compare.internal.CompareUIPlugin.lambda$3(CompareUIPlugin.java:1397)
at org.eclipse.compare.internal.CompareUIPlugin.syncExec(CompareUIPlugin.java:1405)
at org.eclipse.compare.internal.CompareUIPlugin.internalOpenDialog(CompareUIPlugin.java:1389)
at org.eclipse.compare.internal.CompareUIPlugin.openCompareDialog(CompareUIPlugin.java:589)
at org.eclipse.compare.CompareUI.openCompareDialog(CompareUI.java:217)
at org.eclipse.emf.cdo.ui.compare.CDOCompareEditorUtil$7.run(CDOCompareEditorUtil.java:490)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3984)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3600)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:166)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:368)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:470)
at org.eclipse.emf.cdo.internal.ui.editor.CDOEditor.doSave(CDOEditor.java:2069)
at org.eclipse.ui.internal.SaveableHelper.lambda$0(SaveableHelper.java:156)
at org.eclipse.ui.internal.SaveableHelper.lambda$3(SaveableHelper.java:271)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:434)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:352)
at org.eclipse.ui.internal.WorkbenchWindow.lambda$7(WorkbenchWindow.java:2346)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2344)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:278)
at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:260)
at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:160)
at org.eclipse.ui.internal.WorkbenchPage.saveSaveable(WorkbenchPage.java:3802)
at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3815)
at org.eclipse.ui.internal.handlers.SaveHandler.execute(SaveHandler.java:82)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:389)
at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:142)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$5(ActionContributionItem.java:453)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4211)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4009)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3597)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
I think that's out of CDO's control, but I'd like to clarify with the EMF Compare team. Please submit a bugzilla against CDO!
Perhaps you can confirm in the bugzilla that you're seeing the same exception or another one?
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
|
Powered by
FUDForum. Page generated in 0.01846 seconds