@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

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).

Reviewers: amckinley

Reviewed By: amckinley

Subscribers: jbrownEP

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

+9 -131
-4
src/applications/almanac/storage/AlmanacModularTransaction.php
··· 7 7 return 'almanac'; 8 8 } 9 9 10 - public function getApplicationTransactionCommentObject() { 11 - return null; 12 - } 13 - 14 10 }
-4
src/applications/auth/storage/PhabricatorAuthPasswordTransaction.php
··· 11 11 return PhabricatorAuthPasswordPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PhabricatorAuthPasswordTransactionType'; 20 16 }
-4
src/applications/auth/storage/PhabricatorAuthProviderConfigTransaction.php
··· 33 33 return PhabricatorAuthAuthProviderPHIDType::TYPECONST; 34 34 } 35 35 36 - public function getApplicationTransactionCommentObject() { 37 - return null; 38 - } 39 - 40 36 public function getIcon() { 41 37 $old = $this->getOldValue(); 42 38 $new = $this->getNewValue();
-4
src/applications/auth/storage/PhabricatorAuthSSHKeyTransaction.php
··· 15 15 return PhabricatorAuthSSHKeyPHIDType::TYPECONST; 16 16 } 17 17 18 - public function getApplicationTransactionCommentObject() { 19 - return null; 20 - } 21 - 22 18 public function getTitle() { 23 19 $author_phid = $this->getAuthorPHID(); 24 20
-4
src/applications/config/storage/PhabricatorConfigTransaction.php
··· 13 13 return PhabricatorConfigConfigPHIDType::TYPECONST; 14 14 } 15 15 16 - public function getApplicationTransactionCommentObject() { 17 - return null; 18 - } 19 - 20 16 public function getTitle() { 21 17 $author_phid = $this->getAuthorPHID(); 22 18
-4
src/applications/diviner/storage/DivinerLiveBookTransaction.php
··· 11 11 return DivinerBookPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 }
-4
src/applications/fund/storage/FundBackerTransaction.php
··· 11 11 return FundBackerPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'FundBackerTransactionType'; 20 16 }
+3 -6
src/applications/herald/action/HeraldCommentAction.php
··· 19 19 } 20 20 21 21 $xaction = $object->getApplicationTransactionTemplate(); 22 - try { 23 - $comment = $xaction->getApplicationTransactionCommentObject(); 24 - if (!$comment) { 25 - return false; 26 - } 27 - } catch (PhutilMethodNotImplementedException $ex) { 22 + 23 + $comment = $xaction->getApplicationTransactionCommentObject(); 24 + if (!$comment) { 28 25 return false; 29 26 } 30 27
-4
src/applications/herald/storage/HeraldWebhookTransaction.php
··· 11 11 return HeraldWebhookPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'HeraldWebhookTransactionType'; 20 16 }
-4
src/applications/metamta/storage/PhabricatorMetaMTAApplicationEmailTransaction.php
··· 16 16 return PhabricatorMetaMTAApplicationEmailPHIDType::TYPECONST; 17 17 } 18 18 19 - public function getApplicationTransactionCommentObject() { 20 - return null; 21 - } 22 - 23 19 }
-4
src/applications/oauthserver/storage/PhabricatorOAuthServerTransaction.php
··· 19 19 return PhabricatorOAuthServerClientPHIDType::TYPECONST; 20 20 } 21 21 22 - public function getApplicationTransactionCommentObject() { 23 - return null; 24 - } 25 - 26 22 public function getTitle() { 27 23 $author_phid = $this->getAuthorPHID(); 28 24 $old = $this->getOldValue();
-4
src/applications/owners/storage/PhabricatorOwnersPackageTransaction.php
··· 15 15 return 'PhabricatorOwnersPackageTransactionType'; 16 16 } 17 17 18 - public function getApplicationTransactionCommentObject() { 19 - return null; 20 - } 21 - 22 18 }
-4
src/applications/passphrase/storage/PassphraseCredentialTransaction.php
··· 11 11 return PassphraseCredentialPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PassphraseCredentialTransactionType'; 20 16 }
-4
src/applications/people/storage/PhabricatorUserTransaction.php
··· 11 11 return PhabricatorPeopleUserPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PhabricatorUserTransactionType'; 20 16 }
-4
src/applications/phame/storage/PhameBlogTransaction.php
··· 15 15 return PhabricatorPhameBlogPHIDType::TYPECONST; 16 16 } 17 17 18 - public function getApplicationTransactionCommentObject() { 19 - return null; 20 - } 21 - 22 18 public function getBaseTransactionClass() { 23 19 return 'PhameBlogTransactionType'; 24 20 }
-4
src/applications/phlux/storage/PhluxTransaction.php
··· 13 13 return PhluxVariablePHIDType::TYPECONST; 14 14 } 15 15 16 - public function getApplicationTransactionCommentObject() { 17 - return null; 18 - } 19 - 20 16 public function getTitle() { 21 17 $author_phid = $this->getAuthorPHID(); 22 18
-4
src/applications/phortune/storage/PhortuneAccountTransaction.php
··· 11 11 return PhortuneAccountPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PhortuneAccountTransactionType'; 20 16 }
-4
src/applications/phortune/storage/PhortuneCartTransaction.php
··· 19 19 return PhortuneCartPHIDType::TYPECONST; 20 20 } 21 21 22 - public function getApplicationTransactionCommentObject() { 23 - return null; 24 - } 25 - 26 22 public function shouldHideForMail(array $xactions) { 27 23 switch ($this->getTransactionType()) { 28 24 case self::TYPE_CREATED:
-4
src/applications/phortune/storage/PhortuneMerchantTransaction.php
··· 11 11 return PhortuneMerchantPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PhortuneMerchantTransactionType'; 20 16 }
-4
src/applications/phortune/storage/PhortunePaymentProviderConfigTransaction.php
··· 17 17 return PhortunePaymentProviderPHIDType::TYPECONST; 18 18 } 19 19 20 - public function getApplicationTransactionCommentObject() { 21 - return null; 22 - } 23 - 24 20 public function getTitle() { 25 21 $author_phid = $this->getAuthorPHID(); 26 22
-4
src/applications/project/storage/PhabricatorProjectTransaction.php
··· 19 19 return PhabricatorProjectProjectPHIDType::TYPECONST; 20 20 } 21 21 22 - public function getApplicationTransactionCommentObject() { 23 - return null; 24 - } 25 - 26 22 public function getBaseTransactionClass() { 27 23 return 'PhabricatorProjectTransactionType'; 28 24 }
-4
src/applications/repository/storage/PhabricatorRepositoryTransaction.php
··· 11 11 return PhabricatorRepositoryRepositoryPHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PhabricatorRepositoryTransactionType'; 20 16 }
+2 -6
src/applications/search/engineextension/PhabricatorFulltextIndexEngineExtension.php
··· 70 70 private function getCommentVersion($object) { 71 71 $xaction = $object->getApplicationTransactionTemplate(); 72 72 73 - try { 74 - $comment = $xaction->getApplicationTransactionCommentObject(); 75 - if (!$comment) { 76 - return 'none'; 77 - } 78 - } catch (Exception $ex) { 73 + $comment = $xaction->getApplicationTransactionCommentObject(); 74 + if (!$comment) { 79 75 return 'none'; 80 76 } 81 77
-4
src/applications/search/storage/PhabricatorProfileMenuItemConfigurationTransaction.php
··· 20 20 return PhabricatorProfileMenuItemPHIDType::TYPECONST; 21 21 } 22 22 23 - public function getApplicationTransactionCommentObject() { 24 - return null; 25 - } 26 - 27 23 }
-4
src/applications/settings/storage/PhabricatorUserPreferencesTransaction.php
··· 11 11 return 'user'; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getApplicationTransactionType() { 19 15 return PhabricatorUserPreferencesPHIDType::TYPECONST; 20 16 }
-4
src/applications/spaces/storage/PhabricatorSpacesNamespaceTransaction.php
··· 11 11 return PhabricatorSpacesNamespacePHIDType::TYPECONST; 12 12 } 13 13 14 - public function getApplicationTransactionCommentObject() { 15 - return null; 16 - } 17 - 18 14 public function getBaseTransactionClass() { 19 15 return 'PhabricatorSpacesNamespaceTransactionType'; 20 16 }
+1 -6
src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php
··· 360 360 } 361 361 362 362 if ($template) { 363 - try { 364 - $comment = $template->getApplicationTransactionCommentObject(); 365 - } catch (PhutilMethodNotImplementedException $ex) { 366 - $comment = null; 367 - } 368 - 363 + $comment = $template->getApplicationTransactionCommentObject(); 369 364 if ($comment) { 370 365 $types[] = PhabricatorTransactions::TYPE_COMMENT; 371 366 }
+1 -6
src/applications/transactions/engineextension/PhabricatorCommentEditEngineExtension.php
··· 23 23 PhabricatorApplicationTransactionInterface $object) { 24 24 25 25 $xaction = $object->getApplicationTransactionTemplate(); 26 - 27 - try { 28 - $comment = $xaction->getApplicationTransactionCommentObject(); 29 - } catch (PhutilMethodNotImplementedException $ex) { 30 - $comment = null; 31 - } 26 + $comment = $xaction->getApplicationTransactionCommentObject(); 32 27 33 28 return (bool)$comment; 34 29 }
+2 -7
src/applications/transactions/storage/PhabricatorApplicationTransaction.php
··· 76 76 } 77 77 78 78 public function getApplicationTransactionCommentObject() { 79 - throw new PhutilMethodNotImplementedException(); 79 + return null; 80 80 } 81 81 82 82 public function getMetadataValue($key, $default = null) { ··· 1731 1731 PhabricatorDestructionEngine $engine) { 1732 1732 1733 1733 $this->openTransaction(); 1734 - $comment_template = null; 1735 - try { 1736 - $comment_template = $this->getApplicationTransactionCommentObject(); 1737 - } catch (Exception $ex) { 1738 - // Continue; no comments for these transactions. 1739 - } 1734 + $comment_template = $this->getApplicationTransactionCommentObject(); 1740 1735 1741 1736 if ($comment_template) { 1742 1737 $comments = $comment_template->loadAllWhere(
-4
src/applications/transactions/storage/PhabricatorEditEngineConfigurationTransaction.php
··· 23 23 return PhabricatorEditEngineConfigurationPHIDType::TYPECONST; 24 24 } 25 25 26 - public function getApplicationTransactionCommentObject() { 27 - return null; 28 - } 29 - 30 26 public function getTitle() { 31 27 $author_phid = $this->getAuthorPHID(); 32 28