From: daniel Date: Wed, 10 Sep 2014 17:40:25 +0000 (+0200) Subject: Do deletion updates after commit. X-Git-Tag: 1.31.0-rc.0~14086^2 X-Git-Url: http://git.cyclocoop.org/%22%2C%20generer_url_ecrire%28?a=commitdiff_plain;h=3de5d02d2c725942cea630e141338a5218e0ebe9;p=lhc%2Fweb%2Fwiklou.git Do deletion updates after commit. WikiPage::doDeleteArticleReal now triggers secondary data updates (link tables, etc) only after the deletion proper is committed. This is consistent with the way doEditContent applies secondary data updates, and avoids nested transactions (e.g. by one of the updates using a retry loop). Change-Id: Ie4d96f77d210c9953104a0e6fb11ea8ed348c42a --- diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index b62f40da5c..9ade16e5af 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -2876,8 +2876,6 @@ class WikiPage implements Page, IDBAccessObject { // Clone the title, so we have the information we need when we log $logTitle = clone $this->mTitle; - $this->doDeleteUpdates( $id, $content ); - // Log the deletion, if the page was suppressed, log it at Oversight instead $logtype = $suppress ? 'suppress' : 'delete'; @@ -2896,6 +2894,8 @@ class WikiPage implements Page, IDBAccessObject { $dbw->commit( __METHOD__ ); } + $this->doDeleteUpdates( $id, $content ); + wfRunHooks( 'ArticleDeleteComplete', array( &$this, &$user, $reason, $id, $content, $logEntry ) ); $status->value = $logid; return $status;