Entity Master: reconcile the UI and server-side logic for determining if an entity is changed
Description
There are situations where just loaded entity instances (i.e. unchanged) are recognised as mutated by the UI logic on Entity Masters. In such cases, Entity Masters cannot be closed, always reporting that changes need to be saved, but saving does not change anything. These situations need to be investigated further to understand what might be causing them.
An example of such situation is where an entity that has a string property defined as @UpperCase, has a value with not all characters uppercased. This is an edge case, which should not be occurring under normal circumstances (i.e. uppercase values should be uppercased). However, this is just an example where the UI logic would recognise such an instance as modified, because it would uppercase the value rendered in a property editor, making it "different" to the original value. More recent cases suggest that there could be some other causes, not necessarily related to uppercasing, that lead to to same situation.
One of the possible approaches would be to indicate properties that have values different to what they "suppose" to be from the UI perspective (e.g. a warning associated with an editor). However, further analysis is required to understand what is causing such discrepancy.
Expected outcome
A more sound approach to reconciling differences between loaded entities and their representation as expected by the UI logic.