]> git.mxchange.org Git - friendica.git/commitdiff
Fixing PHP Fatal Error for Model\Contact (usage of non available contact)
authorPhilipp Holzer <admin+github@philipp.info>
Tue, 27 Aug 2019 23:22:09 +0000 (01:22 +0200)
committerPhilipp Holzer <admin+github@philipp.info>
Tue, 27 Aug 2019 23:40:28 +0000 (01:40 +0200)
src/Model/Contact.php

index 6f9ee4cdb6d9f4aa2bf508d83af596d2581f7311..14f970e5930b85c262b1832f0f983d80d51316d6 100644 (file)
@@ -1795,13 +1795,19 @@ class Contact extends BaseObject
         /**
         * @brief Helper function for "updateFromProbe". Updates personal and public contact
         *
-        * @param array $contact The personal contact entry
-        * @param array $fields  The fields that are updated
+        * @param integer $id      contact id
+        * @param integer $uid     user id
+        * @param string  $url     The profile URL of the contact
+        * @param array   $fields  The fields that are updated
+        *
         * @throws \Exception
         */
        private static function updateContact($id, $uid, $url, array $fields)
        {
-               DBA::update('contact', $fields, ['id' => $id]);
+               if (!DBA::update('contact', $fields, ['id' => $id])) {
+                       Logger::info('Couldn\'t update contact.', ['id' => $id, 'fields' => $fields]);
+                       return;
+               }
 
                // Search for duplicated contacts and get rid of them
                if (self::handleDuplicates(Strings::normaliseLink($url), $uid, $id) || ($uid != 0)) {
@@ -1814,6 +1820,11 @@ class Contact extends BaseObject
                // Archive or unarchive the contact. We only need to do this for the public contact.
                // The archive/unarchive function will update the personal contacts by themselves.
                $contact = DBA::selectFirst('contact', [], ['id' => $id]);
+               if (!DBA::isResult($contact)) {
+                       Logger::info('Couldn\'t select contact for archival.', ['id' => $id]);
+                       return;
+               }
+
                if (!empty($fields['success_update'])) {
                        self::unmarkForArchival($contact);
                } elseif (!empty($fields['failure_update'])) {