jenkins-bot has submitted this change and it was merged.
Change subject: Use safe attribute accessor for RecentChange
......................................................................
Use safe attribute accessor for RecentChange
The RecentChange does not guarantee that all attributes are populated.
Handily it provides a safe getter function in
RecentChange::getAttribute() that will return null with out triggering
an undefined index warning for missing attributes. Protects against log
spam like "Notice: Undefined index: rc_id".
Change-Id: Idee844f0d40a2a084e17f201b5e1501d59a0464d
(cherry picked from commit 78695ada64118461969f7a7b4ae0fec128505dd8)
---
M includes/rcfeed/MachineReadableRCFeedFormatter.php
1 file changed, 22 insertions(+), 23 deletions(-)
Approvals:
BryanDavis: Looks good to me, but someone else must approve
EBernhardson: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/rcfeed/MachineReadableRCFeedFormatter.php
b/includes/rcfeed/MachineReadableRCFeedFormatter.php
index 18e6003..519606c 100644
--- a/includes/rcfeed/MachineReadableRCFeedFormatter.php
+++ b/includes/rcfeed/MachineReadableRCFeedFormatter.php
@@ -39,64 +39,63 @@
*/
public function getLine( array $feed, RecentChange $rc, $actionComment
) {
global $wgCanonicalServer, $wgServerName, $wgScriptPath;
- $attrib = $rc->getAttributes();
$packet = array(
// Usually, RC ID is exposed only for patrolling
purposes,
// but there is no real reason not to expose it in
other cases,
// and I can see how this may be potentially useful for
clients.
- 'id' => $attrib['rc_id'],
- 'type' => RecentChange::parseFromRCType(
$attrib['rc_type'] ),
+ 'id' => $rc->getAttribute( 'rc_id' ),
+ 'type' => RecentChange::parseFromRCType(
$rc->getAttribute( 'rc_type' ) ),
'namespace' => $rc->getTitle()->getNamespace(),
'title' => $rc->getTitle()->getPrefixedText(),
- 'comment' => $attrib['rc_comment'],
- 'timestamp' => (int)wfTimestamp( TS_UNIX,
$attrib['rc_timestamp'] ),
- 'user' => $attrib['rc_user_text'],
- 'bot' => (bool)$attrib['rc_bot'],
+ 'comment' => $rc->getAttribute( 'rc_comment' ),
+ 'timestamp' => (int)wfTimestamp( TS_UNIX,
$rc->getAttribute( 'rc_timestamp' ) ),
+ 'user' => $rc->getAttribute( 'rc_user_text' ),
+ 'bot' => (bool)$rc->getAttribute( 'rc_bot' ),
);
if ( isset( $feed['channel'] ) ) {
$packet['channel'] = $feed['channel'];
}
- $type = $attrib['rc_type'];
+ $type = $rc->getAttribute( 'rc_type' );
if ( $type == RC_EDIT || $type == RC_NEW ) {
global $wgUseRCPatrol, $wgUseNPPatrol;
- $packet['minor'] = (bool)$attrib['rc_minor'];
+ $packet['minor'] = (bool)$rc->getAttribute( 'rc_minor'
);
if ( $wgUseRCPatrol || ( $type == RC_NEW &&
$wgUseNPPatrol ) ) {
- $packet['patrolled'] =
(bool)$attrib['rc_patrolled'];
+ $packet['patrolled'] = (bool)$rc->getAttribute(
'rc_patrolled' );
}
}
switch ( $type ) {
case RC_EDIT:
$packet['length'] = array(
- 'old' => $attrib['rc_old_len'],
- 'new' => $attrib['rc_new_len']
+ 'old' => $rc->getAttribute(
'rc_old_len' ),
+ 'new' => $rc->getAttribute(
'rc_new_len' )
);
$packet['revision'] = array(
- 'old' => $attrib['rc_last_oldid'],
- 'new' => $attrib['rc_this_oldid']
+ 'old' => $rc->getAttribute(
'rc_last_oldid' ),
+ 'new' => $rc->getAttribute(
'rc_this_oldid' )
);
break;
case RC_NEW:
- $packet['length'] = array( 'old' => null, 'new'
=> $attrib['rc_new_len'] );
- $packet['revision'] = array( 'old' => null,
'new' => $attrib['rc_this_oldid'] );
+ $packet['length'] = array( 'old' => null, 'new'
=> $rc->getAttribute( 'rc_new_len' ) );
+ $packet['revision'] = array( 'old' => null,
'new' => $rc->getAttribute( 'rc_this_oldid' ) );
break;
case RC_LOG:
- $packet['log_id'] = $attrib['rc_logid'];
- $packet['log_type'] = $attrib['rc_log_type'];
- $packet['log_action'] =
$attrib['rc_log_action'];
- if ( $attrib['rc_params'] ) {
+ $packet['log_id'] = $rc->getAttribute(
'rc_logid' );
+ $packet['log_type'] = $rc->getAttribute(
'rc_log_type' );
+ $packet['log_action'] = $rc->getAttribute(
'rc_log_action' );
+ if ( $rc->getAttribute( 'rc_params' ) ) {
wfSuppressWarnings();
- $params = unserialize(
$attrib['rc_params'] );
+ $params = unserialize(
$rc->getAttribute( 'rc_params' ) );
wfRestoreWarnings();
if (
// If it's an actual serialised
false...
- $attrib['rc_params'] ==
serialize( false ) ||
+ $rc->getAttribute( 'rc_params'
) == serialize( false ) ||
// Or if we did not get false
back when trying to unserialise
$params !== false
) {
@@ -113,7 +112,7 @@
}
$packet['log_params'] =
$logParams;
} else {
- $packet['log_params'] =
explode( "\n", $attrib['rc_params'] );
+ $packet['log_params'] =
explode( "\n", $rc->getAttribute( 'rc_params' ) );
}
}
$packet['log_action_comment'] = $actionComment;
--
To view, visit https://gerrit.wikimedia.org/r/161482
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Idee844f0d40a2a084e17f201b5e1501d59a0464d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: wmf/1.24wmf21
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: EBernhardson <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits