Bad interaction between _PreSave hook and check whether a record should be saved
If one of the
_PostSave hooks add a key to the
Record dictionary, and the record is saved subsequently, the
_Changes method will indicate that the record has pending changes, even though the
_PreSave hook might remove those before they actually hit the database.
For that reason,
_PreSave should be executed before changes in the record are determined. If changes have been made, the record should be stored in the database, and the
_PostSave hook should then always run.