| Summary: | TrackingModificationTrigger is called several times | ||
|---|---|---|---|
| Product: | [Modeling] Sirius | Reporter: | Esteban DUGUEPEROUX <esteban.dugueperoux> |
| Component: | Core | Assignee: | Esteban DUGUEPEROUX <esteban.dugueperoux> |
| Status: | CLOSED FIXED | QA Contact: | Maxime Porhel <maxime.porhel> |
| Severity: | normal | ||
| Priority: | P3 | CC: | belqassim.djafer, cedric.brun, laurent.redor, maxime.porhel, pierre-charles.david |
| Version: | 2.0.0 | Keywords: | triaged |
| Target Milestone: | 3.0.0M4 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Whiteboard: | needtest | ||
| Bug Depends on: | |||
| Bug Blocks: | 454016 | ||
|
Description
Esteban DUGUEPEROUX
A draft of gerrit : https://git.eclipse.org/r/36844 You might wnat to check that ResourceSetSync gets called with the isModified=true change anyway as all the workspace sync will rely on this. Another implication would be that we can't "rollback" anymore based on the fact that isModified gets set to true. I don't see a use case for this but I'd like you to confirm it gets not possible then. Logic which would rely on the isModified flag being set *during* the transaction will not work anymore. You'll have to check that a session.save() which gets requested while a transaction is in process and ends up being trigger in postcommit() will always have this information up to date or the saving policies can't rely on it. ResourceSetSync is correctly notified of this change in postcommit as before. Indeed we can't anymore rollback on this feature change. Code in postcommit can rely on it, as ValidateEditSupport.finalizeForCommit() is called before postcommits. Currently, i.e. with the current TrackingModificationTrigger, there is an issue : 1. do a change 2. save => all Resources return false al Resource.isModified() call OK 3. undo => all Resources return false al Resource.isModified() call KO while the editor is visible as dirty with a * This is because Resource.RESOURCE__IS_MODIFIED feature is not undoed. We don't have this issue with Resource.setTrackingModification() has on undo we receive notifications. The advantage of ValidateEditSupport and that we are notified of changed resource even on undo through ValidateEditSupport.handleResourceChange() method. Fixed as 5ca028139011f2c30380af9c58158e8821bc26c5 . The previous commit caused a regression in our tests. Reopening until the fix in https://git.eclipse.org/r/#/c/37441/ is merged. Last Gerrit merged as 2c8add9824179a1e70bacbdb1870ba8710ee545a. Cloned as bug 454016 to backport into Sirius 2.0.x. Verified as technical issue on Sirius 3.0.0M6 Validated on Sirius 3.0.0 RC1 Available in Sirius 3.0.0. See https://wiki.eclipse.org/Sirius/3.0.0. |