From f704f905d26055fb37564e154cac77056e047169 Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 19 Jun 2017 15:02:22 -0700 Subject: [PATCH] Let PhabricatorSearchCheckboxesField survive saved query data with mismatched types Summary: Fixes T12851. This should fix the error I'm seeing, which is: * `Argument 1 passed to array_fuse() must be of the type array, boolean given` There may be a better way to patch this up than overriding the getValue() method, however. Test Plan: - Changed the default "Tags" filter to specify `true` instead of `array('self')`, then viewed that filter in the UI. - Before patch: fatal. - After patch: page loads. Note that `true` is not interpreted as `array('self')`, but the page isn't broken, which is a big improvement. Reviewers: #blessed_reviewers, 20after4, chad, amckinley Reviewed By: #blessed_reviewers, amckinley Subscribers: Korvin Maniphest Tasks: T12851 Differential Revision: https://secure.phabricator.com/D18132 --- .../search/field/PhabricatorSearchCheckboxesField.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/applications/search/field/PhabricatorSearchCheckboxesField.php b/src/applications/search/field/PhabricatorSearchCheckboxesField.php index 5a552362bf..e1a72f4576 100644 --- a/src/applications/search/field/PhabricatorSearchCheckboxesField.php +++ b/src/applications/search/field/PhabricatorSearchCheckboxesField.php @@ -18,6 +18,14 @@ final class PhabricatorSearchCheckboxesField return array(); } + protected function didReadValueFromSavedQuery($value) { + if (!is_array($value)) { + return array(); + } + + return $value; + } + protected function getValueFromRequest(AphrontRequest $request, $key) { return $this->getListFromRequest($request, $key); }