Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 386052 - [UML Compare] In the case of nested comparison, we could get an IllegateStateException
Summary: [UML Compare] In the case of nested comparison, we could get an IllegateState...
Status: CLOSED FIXED
Alias: None
Product: Papyrus
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: M7   Edit
Assignee: Vincent Lorenzo CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 371607
  Show dependency tree
 
Reported: 2012-07-26 10:38 EDT by Vincent Lorenzo CLA
Modified: 2012-07-27 03:11 EDT (History)
2 users (show)

See Also:


Attachments
An example to get this bug (5.94 KB, application/octet-stream)
2012-07-26 10:41 EDT, Vincent Lorenzo CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vincent Lorenzo CLA 2012-07-26 10:38:23 EDT
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)
Comment 1 Vincent Lorenzo CLA 2012-07-26 10:41:06 EDT
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
Comment 2 Vincent Lorenzo CLA 2012-07-27 02:40:39 EDT
R8631 : commit the example to use to the JUnit test
Comment 3 Vincent Lorenzo CLA 2012-07-27 03:11:07 EDT
R8632 : commit the correction and the Junit test.
This bug can be marked as closed fixed.