Homec4science

Improve ApplicationTransaction behavior for poorly constructed transactions

Authored by epriestley <git@epriestley.com> on Mar 5 2014, 19:44.

Description

Improve ApplicationTransaction behavior for poorly constructed transactions

Summary:
Ref T2222. Five very small improvements:

  • I hit this exception and it took a bit to understand which transaction was causing problems. Add an Exception subclass which does a better job of making the message debuggable.
  • The oldValue of a transaction may be null, legitimately (for example, changing the repositoryPHID for a revision from null to some valid PHID). Do a check to see if setOldValue() has been called, instead of a check for a null value.
  • Add an additional check for the other case (shouldn't have a value, but does).
  • When we're not generating a value, don't bother calling the code to generate it. The best case scenario is that it has no effect; any effect it might have (changing the value) is always wrong.
  • Maniphest didn't fall back to the parent correctly when computing this flag, so it got the wrong result for CustomField transactions.

Test Plan: Resolved the issue I was hitting more easily, made updates to a null-valued custom field, and applied other normal sorts of transactions successfully.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4557, T2222

Differential Revision: https://secure.phabricator.com/D8401

Details

Committed
epriestley <git@epriestley.com>Mar 5 2014, 19:44
Pushed
aubortJan 31 2017, 17:16
Parents
rPHdd60f25232ce: Make "My Events" default on Calendar
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH857e3aee83de: Improve ApplicationTransaction behavior for poorly constructed transactions (authored by epriestley <git@epriestley.com>).Mar 5 2014, 19:44