From 047fc253d04f5a3ad81de917edf94fb3524513ac Mon Sep 17 00:00:00 2001 From: Matthew Flaschen Date: Tue, 18 Aug 2015 22:57:39 -0400 Subject: [PATCH] RC: Handle getLine returning null, which breaks Redis engine (at least HHVM) Bug: T109544 Change-Id: I02dcfc7a10a74571232a898f1ef348f8dbc48b45 --- includes/changes/RecentChange.php | 7 +++++++ includes/rcfeed/RCFeedFormatter.php | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/includes/changes/RecentChange.php b/includes/changes/RecentChange.php index 77bf5df09d..54ca2ab23a 100644 --- a/includes/changes/RecentChange.php +++ b/includes/changes/RecentChange.php @@ -382,6 +382,13 @@ class RecentChange { /** @var $formatter RCFeedFormatter */ $formatter = is_object( $feed['formatter'] ) ? $feed['formatter'] : new $feed['formatter'](); $line = $formatter->getLine( $feed, $this, $actionComment ); + if ( !$line ) { + // T109544 + // If a feed formatter returns null, this will otherwise cause an + // error in at least RedisPubSubFeedEngine. + // Not sure where/how this should best be handled. + continue; + } $engine->send( $feed, $line ); } diff --git a/includes/rcfeed/RCFeedFormatter.php b/includes/rcfeed/RCFeedFormatter.php index 2f156598d3..f7e62ee6cf 100644 --- a/includes/rcfeed/RCFeedFormatter.php +++ b/includes/rcfeed/RCFeedFormatter.php @@ -32,7 +32,8 @@ interface RCFeedFormatter { * @param RecentChange $rc The RecentChange object showing what sort * of event has taken place. * @param string|null $actionComment - * @return string The text to send. + * @return string|null The text to send. If the formatter returns null, + * the line will not be sent. */ public function getLine( array $feed, RecentChange $rc, $actionComment ); } -- 2.20.1