From d7880c17ecabe94b196359a2ee326dffcde5d5da Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 23 May 2013 15:02:30 -0400 Subject: [PATCH] Don't abort if an activity throws an exception when backing up --- lib/useractivitystream.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/useractivitystream.php b/lib/useractivitystream.php index d1e3e28fb8..df4f2187ed 100644 --- a/lib/useractivitystream.php +++ b/lib/useractivitystream.php @@ -67,6 +67,7 @@ class UserActivityStream extends AtomUserNoticeFeed // Assume that everything but notices is feasible // to pull at once and work with in memory... + $subscriptions = $this->getSubscriptions(); $subscribers = $this->getSubscribers(); $groups = $this->getGroups(); @@ -81,7 +82,11 @@ class UserActivityStream extends AtomUserNoticeFeed // We'll keep these around for later, and interleave them into // the output stream with the user's notices. foreach ($objs as $obj) { - $this->activities[] = $obj->asActivity(); + try { + $this->activities[] = $obj->asActivity(); + } catch (Exception $e) { + // Continue + } } } @@ -100,7 +105,12 @@ class UserActivityStream extends AtomUserNoticeFeed // Grab the chunks of notices between other activities. $notices = $this->getNoticesBetween($start, $end); foreach ($notices as $noticeAct) { - $noticeAct->asActivity()->outputTo($this, false, false); + try { + $nact = $noticeAct->asActivity(); + $nact->outputTo($this, false, false); + } catch (Exception $e) { + // Continue + } } } @@ -114,7 +124,12 @@ class UserActivityStream extends AtomUserNoticeFeed // Grab anything after the last pre-sorted activity. $notices = $this->getNoticesBetween(0, $end); foreach ($notices as $noticeAct) { - $noticeAct->asActivity()->outputTo($this, false, false); + try { + $nact = $noticeAct->asActivity(); + $nact->outputTo($this, false, false); + } catch (Exception $e) { + // Continue + } } } }