Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Reject change in conflict(Getting my hands wet)
[CDO] Reject change in conflict [message #1854821] Tue, 13 September 2022 08:46 Go to next message
Wilbert Alberts is currently offline Wilbert AlbertsFriend
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 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6682
Registered: July 2009
Senior Member
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?


Re: [CDO] Reject change in conflict [message #1855814 is a reply to message #1855799] Fri, 04 November 2022 10:27 Go to previous message
Wilbert Alberts is currently offline Wilbert AlbertsFriend
Messages: 209
Registered: June 2010
Senior Member
Hi Eike,

I think that (even with my mediocre description) you hit the same bug. I do notice the same/similar stack trace and filed: https://bugs.eclipse.org/bugs/show_bug.cgi?id=580988

Regards,
Wilbert
Previous Topic:Export ECore to XSD
Next Topic:[CDO] Sporadic IOException: String ID unknown
Goto Forum:
  


Current Time: Thu May 02 11:59:54 GMT 2024

Powered by FUDForum. Page generated in 0.03773 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top