From ab149755b62aaf7959a97e4a425e20aebf4c92cc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 13 Jul 2010 10:42:06 -0400 Subject: [PATCH] handle notices without profiles better in RSS output --- lib/apiaction.php | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index 8de13a62da..16dd878142 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -461,6 +461,11 @@ class ApiAction extends Action function twitterRssEntryArray($notice) { $profile = $notice->getProfile(); + + if (empty($profile)) { + throw new ServerException(sprintf(_('No such profile: %d'), $notice->profile_id)); + } + $entry = array(); // We trim() to avoid extraneous whitespace in the output @@ -789,13 +794,23 @@ class ApiAction extends Action if (is_array($notice)) { foreach ($notice as $n) { - $entry = $this->twitterRssEntryArray($n); - $this->showTwitterRssItem($entry); + try { + $entry = $this->twitterRssEntryArray($n); + $this->showTwitterRssItem($entry); + } catch (Exception $e) { + common_log(LOG_ERR, "Error with notice {$n->id}: " . $e->getMessage()); + // continue on exceptions + } } } else { while ($notice->fetch()) { - $entry = $this->twitterRssEntryArray($notice); - $this->showTwitterRssItem($entry); + try { + $entry = $this->twitterRssEntryArray($notice); + $this->showTwitterRssItem($entry); + } catch (Exception $e) { + common_log(LOG_ERR, "Error with notice {$n->id}: " . $e->getMessage()); + // continue on exceptions + } } } -- 2.39.5