Community
Participate
Working Groups
The method DefaultTransactionalMerger#copy(EObject object) set the references without use a command. This behavior can provide IllegalStateException in some case. !ENTRY org.eclipse.ui 4 0 2012-07-26 16:35:25.239 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.IllegalStateException: Cannot modify resource set without a write transaction at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.assertWriting(TransactionChangeRecorder.java:348) at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.appendNotification(TransactionChangeRecorder.java:302) at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.processObjectNotification(TransactionChangeRecorder.java:284) at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.notifyChanged(TransactionChangeRecorder.java:240) at org.eclipse.uml2.uml.internal.impl.ElementImpl.eNotify(ElementImpl.java:974) at org.eclipse.uml2.uml.internal.impl.GeneralizationImpl.setGeneral(GeneralizationImpl.java:249) at org.eclipse.uml2.uml.internal.impl.GeneralizationImpl.eSet(GeneralizationImpl.java:490) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjectImpl.java:1071) at org.eclipse.emf.compare.diff.merge.EMFCompareEObjectCopier.copyReference(EMFCompareEObjectCopier.java:600) at org.eclipse.emf.compare.diff.merge.EMFCompareEObjectCopier.copyReferences(EMFCompareEObjectCopier.java:339) at org.eclipse.papyrus.infra.emf.compare.diff.internal.merger.DefaultTransactionalMerger.copy(DefaultTransactionalMerger.java:363) at org.eclipse.papyrus.infra.emf.compare.diff.internal.merger.ModelElementChangeLeftTargetTransactionalMerger.getDoUndoInTargetCommand(ModelElementChangeLeftTargetTransactionalMerger.java:160) at org.eclipse.papyrus.infra.emf.compare.diff.internal.merger.DefaultTransactionalMerger.getUndoInTargetCommand(DefaultTransactionalMerger.java:87) at org.eclipse.papyrus.infra.emf.compare.diff.internal.merger.DefaultTransactionalMerger.canUndoInTarget(DefaultTransactionalMerger.java:184) at org.eclipse.papyrus.infra.emf.compare.ui.content.transactional.viewer.PapyrusTransactionalModelContentMergeViewer.switchCopyState(PapyrusTransactionalModelContentMergeViewer.java:158) at org.eclipse.emf.compare.ui.viewer.content.ModelContentMergeViewer.setSelection(ModelContentMergeViewer.java:370) at org.eclipse.emf.compare.ui.viewer.content.ModelContentMergeViewer$1.propertyChange(ModelContentMergeViewer.java:213) at org.eclipse.compare.CompareConfiguration.fireChange(CompareConfiguration.java:367) at org.eclipse.compare.CompareConfiguration.setProperty(CompareConfiguration.java:398) at org.eclipse.emf.compare.ui.viewer.structure.ModelStructureMergeViewer$2.widgetSelected(ModelStructureMergeViewer.java:387) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1021) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:915) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:585) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) at org.eclipse.equinox.launcher.Main.run(Main.java:1438) at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
Created attachment 219215 [details] An example to get this bug Steps to reproduce with this example : - compare Class1 and Class3 - select the difference "RedefinableTemplateSignature1 has been added" you get the described exception
R8631 : commit the example to use to the JUnit test
R8632 : commit the correction and the Junit test. This bug can be marked as closed fixed.