Page MenuHomePhabricator

Fix an issue where RepositoryQuery may fail for viewers who can't use Diffusion
ClosedPublic

Authored by epriestley on Apr 2 2015, 4:57 PM.
Tags
None
Referenced Files
F13177845: D12264.diff
Wed, May 8, 7:59 PM
Unknown Object (File)
Thu, May 2, 3:29 PM
Unknown Object (File)
Thu, Apr 25, 6:15 AM
Unknown Object (File)
Thu, Apr 25, 12:50 AM
Unknown Object (File)
Apr 7 2024, 1:20 PM
Unknown Object (File)
Mar 31 2024, 6:54 PM
Unknown Object (File)
Mar 24 2024, 1:24 AM
Unknown Object (File)
Mar 23 2024, 11:18 PM
Subscribers

Details

Summary

See IRC. We don't always reach loadPage(), particularly if canViewerUseQueryApplication() fails.

Perform initialization steps in willExecute() instead.

Trace from IRC:

2015/04/02 11:48:32 [error] 26979#0: *48012 FastCGI sent in stderr: "PHP message: [2015-04-02 11:48:32] EXCEPTION: (Exception) You must execute() the query before accessing the identifier map. at [<phabricator>/src/applications/repository/query/PhabricatorRepositoryQuery.php:134]
PHP message:   #0 PhabricatorRepositoryQuery::getIdentifierMap() called at [<phabricator>/src/applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php:26]
PHP message:   #1 DiffusionRepositoryRemarkupRule::loadObjects(array) called at [<phabricator>/src/infrastructure/markup/rule/PhabricatorObjectRemarkupRule.php:309]
PHP message:   #2 PhabricatorObjectRemarkupRule::didMarkupText() called at [<phutil>/src/markup/engine/PhutilRemarkupEngine.php:292]
PHP message:   #3 PhutilRemarkupEngine::postprocessText(array) called at [<phabricator>/src/infrastructure/markup/PhabricatorMarkupEngine.php:138]
PHP message:   #4 PhabricatorMarkupEngine::process() called at [<phabricator>/src/infrastructure/markup/PhabricatorMarkupEngine.php:71]
PHP message:   #5 PhabricatorMarkupEngine::renderOneObject(PhabricatorMarkupOneOff, string, PhabricatorUser) called at [<phabricator>/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldRemarkup.php:47]
PHP message:   #6 PhabricatorStandardCustomFieldRemarkup::renderPropertyViewValue(array) called at [<phabricator>/src/infrastructure/customfield/field/PhabricatorCustomField.php:1191]
PHP message:   #7 PhabricatorCustomField::renderPropertyViewValue(array) called at [<phabricator>/src/infrastructure/customfield/field/PhabricatorCustomFieldList.php:176]
PHP message:   #8 PhabricatorCustomFieldList::appendFieldsToPropertyList(PhabricatorProject, PhabricatorUser, PHUIPropertyListView) called at [<phabricator>/src/applications/project/controller/PhabricatorProjectProfileController.php:220]
PHP message:   #9 PhabricatorProjectProfileController::buildPropertyListView(PhabricatorProject, PhabricatorActionListView) called at [<phabricator>/src/applications/project/controller/PhabricatorProjectPr
Test Plan
  • Used rX in remarkup.
  • Used rX in search.
  • Browed Diffusion, etc.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Fix an issue where RepositoryQuery may fail for viewers who can't use Diffusion.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.
btrahan edited edge metadata.
This revision is now accepted and ready to land.Apr 2 2015, 8:08 PM
This revision was automatically updated to reflect the committed changes.