Bug 454016 - TrackingModificationTrigger is called several times
Summary: TrackingModificationTrigger is called several times
Status: CLOSED FIXED
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: 2.0.0   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 2.0.2   Edit
Assignee: Florian Barbin CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on: 452653
Blocks:
  Show dependency tree
 
Reported: 2014-12-03 08:57 EST by Pierre-Charles David CLA
Modified: 2014-12-16 08:34 EST (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.