Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 454016

Summary: TrackingModificationTrigger is called several times
Product: [Modeling] Sirius Reporter: Pierre-Charles David <pierre-charles.david>
Component: CoreAssignee: Florian Barbin <florian.barbin>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: cedric.brun, esteban.dugueperoux, florian.barbin, laurent.redor, mickael.lanoe, pierre-charles.david
Version: 2.0.0Keywords: triaged
Target Milestone: 2.0.2   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on: 452653    
Bug Blocks:    

Description Pierre-Charles David CLA 2014-12-03 08:57:56 EST
+++ This bug was initially created as a clone of Bug #452653 +++

With Bug 452558 we have seen that a same precommit can be called several times, for example we have DanglingRefRemovalTrigger which can clean semantic dangling references then trigger a second times TrackingModificationTrigger.
In addition in case of rollBack in the second precommit iteration loop, the work of TrackingModificationTrigger will be useless.

As the change on Resource.modified field can be done outside write transaction, we could move TrackingModificationTrigger logic to a ValidateEditSupport implementation to be sure to be called once.
Comment 1 Pierre-Charles David CLA 2014-12-03 09:00:39 EST
Cloned from bug 452653 to backport in Sirius 2.0.2. Note that the original fix creates a new API class in sirius.ext.emf.transaction, so in the backport this new class will have to be kept into an internal package instead.
Comment 2 Florian Barbin CLA 2014-12-10 05:23:28 EST
Backported into branch 2.0.x
Comment 3 Mickael LANOE CLA 2014-12-15 08:18:54 EST
Validated with Sirius 2.0.2.201412150813
Comment 4 Florian Barbin CLA 2014-12-15 08:26:43 EST
Verified
Comment 5 Pierre-Charles David CLA 2014-12-16 08:34:44 EST
Available in Sirius 2.0.2.