Merge "Convert MovePage to startAtomic()/endAtomic()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 26 Oct 2015 19:14:59 +0000 (19:14 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 26 Oct 2015 19:14:59 +0000 (19:14 +0000)
includes/MovePage.php

index 2cd9698..0f9374a 100644 (file)
@@ -247,7 +247,7 @@ class MovePage {
                        RepoGroup::singleton()->clearCache( $this->newTitle ); # clear false negative cache
                }
 
-               $dbw->begin( __METHOD__ ); # If $file was a LocalFile, its transaction would have closed our own.
+               $dbw->startAtomic( __METHOD__ );
                $pageid = $this->oldTitle->getArticleID( Title::GAID_FOR_UPDATE );
                $protected = $this->oldTitle->isProtected();
 
@@ -369,12 +369,13 @@ class MovePage {
                        WatchedItem::duplicateEntries( $this->oldTitle, $this->newTitle );
                }
 
-               $dbw->commit( __METHOD__ );
+               $dbw->endAtomic( __METHOD__ );
+
+               $params = array( $this->oldTitle, $this->newTitle, $user, $pageid, $redirid, $reason );
+               $dbw->onTransactionIdle( function () use ( $params ) {
+                       Hooks::run( 'TitleMoveComplete', $params );
+               } );
 
-               Hooks::run(
-                       'TitleMoveComplete',
-                       array( &$this->oldTitle, &$this->newTitle, &$user, $pageid, $redirid, $reason )
-               );
                return Status::newGood();
        }