From: Hypolite Petovan Date: Sat, 29 Feb 2020 16:41:33 +0000 (-0500) Subject: Do not cache Contact::getDetailsByURL result if it doesn't come from the DB X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=dd999164c6dacd237a0bf78b8ed8c7b6accd2d93;p=friendica.git Do not cache Contact::getDetailsByURL result if it doesn't come from the DB - Address https://github.com/friendica/friendica/issues/8000#issuecomment-592169621 --- diff --git a/src/Model/Contact.php b/src/Model/Contact.php index f86d3f378c..68bd0986a6 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1037,6 +1037,7 @@ class Contact } if (DBA::isResult($r)) { + $authoritativeResult = true; // If there is more than one entry we filter out the connector networks if (count($r) > 1) { foreach ($r as $id => $result) { @@ -1070,6 +1071,7 @@ class Contact $profile["bd"] = DBA::NULL_DATE; } } else { + $authoritativeResult = false; $profile = $default; } @@ -1106,7 +1108,11 @@ class Contact $profile["birthday"] = DBA::NULL_DATE; } - $cache[$url][$uid] = $profile; + // Only cache the result if it came from the DB since this method is used in widely different contexts + // @see display_fetch_author for an example of $default parameter diverging from the DB result + if ($authoritativeResult) { + $cache[$url][$uid] = $profile; + } return $profile; }