Summary: | Concurrent changes can lead to data loss in the text widget | ||||||
---|---|---|---|---|---|---|---|
Product: | [Modeling] EEF | Reporter: | Pierre-Charles David <pierre-charles.david> | ||||
Component: | User Interface | Assignee: | Pierre-Charles David <pierre-charles.david> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | major | ||||||
Priority: | P3 | CC: | stephane.begaudeau | ||||
Version: | 1.9.0 | ||||||
Target Milestone: | 1.9.2 | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
See Also: |
https://git.eclipse.org/r/#/c/106598/ https://git.eclipse.org/r/113003 https://git.eclipse.org/c/eef/org.eclipse.eef.git/commit/?id=51a0df0bd2c22027f9005691b33fcac6b369d0e6 |
||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Pierre-Charles David
2017-12-05 03:36:14 EST
Note that when a model change occurs, because the rules used in Sirius to produce the properties view are so open, we have no choice but to make a full refresh of the view. Only once we have evaluated all the expression can we know if the text field still exists and would still show the same initial text, as the expression used in the Sirius VSM to compute the text field value is a black box that can do arbitrary computation on any part of the model. There are actually two different resulting cases from the user point of view: * the background job makes a completely unrelated change in the semantic model, which would produce the exact same initial value ("A") for the text field being edited. Losing the text being edited in this scenario is particularly bad. * the background job makes a model change which would produce a different text for the widget that the one originally seen by the user. In this case, assuming the user can understand the relationship between the change and the widget's value, it may be a little less critical (though still bad) to overwrite his current text, but we may still want to offer him some choice. Created attachment 271773 [details]
A patch for Sirius's debugging view which adds buttons to simulate background model changes
Note that https://git.eclipse.org/r/#/c/106598/, which is already merged, is a first attempt at fixing this. It was made as a temporary fix for testing before this ticket was created, and thus does not reference this bug in its commit message. New Gerrit change created: https://git.eclipse.org/r/113003 Gerrit change https://git.eclipse.org/r/113003 was merged to [v1.9.x]. Commit: http://git.eclipse.org/c/eef/org.eclipse.eef.git/commit/?id=51a0df0bd2c22027f9005691b33fcac6b369d0e6 Fixed by 51a0df0bd2c22027f9005691b33fcac6b369d0e6. |