From: Alexandre Emsenhuber Date: Tue, 26 Feb 2013 15:33:13 +0000 (+0100) Subject: (bug 45417) Remove resetArticleID() call from RecentChanges::getTitle() X-Git-Tag: 1.31.0-rc.0~20562^2 X-Git-Url: http://git.cyclocoop.org/%24href?a=commitdiff_plain;h=fc6a9635fb3863feb0cbcd5a08a4ce455bfe13e0;p=lhc%2Fweb%2Fwiklou.git (bug 45417) Remove resetArticleID() call from RecentChanges::getTitle() This is doing more harm than good; see I489c406f (4769f44) for a similar issue. The problem is that if resetArticleID() get called with a strictly positive value when the page does not exist, getArticleID() will return that value indicating that the page exists, but the LinkCache will return null for complementary fields, causing the exception mentionned in the bug. By removing the resetArticleID() call, the ID will get loaded from the LinkCache, and thus the whole Title object is in a consistent state. Since a LinkBatch is already executed for those titles from Special:Recentchanges and Special:Watchlist, this will not increase the number of database queries for those special pages (and even lowers it from what I saw on my development wiki). Change-Id: I8742cce46908ce8eb3fee55c1b6e458732b1ebd7 --- diff --git a/includes/RecentChange.php b/includes/RecentChange.php index f63e95cc42..6af7597f4d 100644 --- a/includes/RecentChange.php +++ b/includes/RecentChange.php @@ -191,8 +191,6 @@ class RecentChange { public function &getTitle() { if ( $this->mTitle === false ) { $this->mTitle = Title::makeTitle( $this->mAttribs['rc_namespace'], $this->mAttribs['rc_title'] ); - # Make sure the correct page ID is process cached - $this->mTitle->resetArticleID( $this->mAttribs['rc_cur_id'] ); } return $this->mTitle; }