Page MenuHomePhabricator

Make the default behavior of getApplicationTransactionCommentObject() "return null" instead of "throw"
ClosedPublic

Authored by epriestley on Thu, Feb 7, 3:43 AM.

Details

Summary

Depends on D20115. See https://discourse.phabricator-community.org/t/transaction-search-endpoint-does-not-work-on-differential-diffs/2369/.

Currently, getApplicationTransactionCommentObject() throws by default. Subclasses must override it to return null to indicate that they don't support comments.

This is silly, and leads to a bunch of code that does a try / catch around it, and at least some code (here, transaction.search) which doesn't try / catch and gets the wrong behavior as a result.

Just make it return null by default, meaning "no support for comments". Then remove the try / catch stuff and all the return null implementations.

Test Plan
  • Grepped for getApplicationTransactionCommentObject(), fixed each callsite / definition.
  • Called transaction.search on a diff with transactions (i.e., not a sourced-from-commit diff).

Diff Detail

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Thu, Feb 7, 3:43 AM
epriestley added inline comments.Thu, Feb 7, 3:44 AM
src/applications/transactions/storage/PhabricatorApplicationTransaction.php
79

This is the culprit responsible for this mess.

epriestley requested review of this revision.Thu, Feb 7, 3:45 AM
amckinley accepted this revision.Thu, Feb 7, 8:47 PM
This revision is now accepted and ready to land.Thu, Feb 7, 8:47 PM
This revision was automatically updated to reflect the committed changes.