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
F15527419: D12264.id29451.diff
Tue, Apr 22, 3:31 AM
F15517010: D12264.diff
Fri, Apr 18, 11:23 PM
F15456300: D12264.id29451.diff
Sun, Mar 30, 8:30 AM
F15456020: D12264.id.diff
Sun, Mar 30, 6:27 AM
F15424240: D12264.id29454.diff
Mar 22 2025, 9:04 PM
F15388466: D12264.id.diff
Mar 15 2025, 3:52 AM
F15382293: D12264.diff
Mar 14 2025, 11:46 AM
Unknown Object (File)
Mar 3 2025, 2:25 AM
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.