Revision::newNullRevision: Make sure the Title is set in the constructor
authorKunal Mehta <legoktm@gmail.com>
Sat, 1 Aug 2015 00:00:48 +0000 (17:00 -0700)
committerKunal Mehta <legoktm@gmail.com>
Sat, 1 Aug 2015 00:00:48 +0000 (17:00 -0700)
Revision::__construct() calls Revision::getContentModel() to initialize
the 'content_model' field. If a Title object is not set, it will try to
look up the page in the slave database, which might be behind. At that
point it will default to wikitext, which is problematic during imports.

By passing the Title object in the constructor instead of afterwards,
the content model should be intialized properly.

Bug: T91170
Change-Id: I7fea996ea5b723967272af8cb344150aea10bb54

includes/Revision.php

index 71bdf58..32ee259 100644 (file)
@@ -1641,8 +1641,9 @@ class Revision implements IDBAccessObject {
                                $row['content_format'] = $current->rev_content_format;
                        }
 
+                       $row['title'] = Title::makeTitle( $current->page_namespace, $current->page_title );
+
                        $revision = new Revision( $row );
-                       $revision->setTitle( Title::makeTitle( $current->page_namespace, $current->page_title ) );
                } else {
                        $revision = null;
                }