public function insertOn( $dbw ) {
global $wgDefaultExternalStore, $wgContentHandlerUseDB;
+ // Not allowed to have rev_page equal to 0, false, etc.
+ if ( !$this->mPage ) {
+ $title = $this->getTitle();
+ if ( $title instanceof Title ) {
+ $titleText = ' for page ' . $title->getPrefixedText();
+ } else {
+ $titleText = '';
+ }
+ throw new MWException( "Cannot insert revision$titleText: page ID must be nonzero" );
+ }
+
$this->checkContentModel();
$data = $this->mText;
}
$content = $this->getContent( Revision::RAW );
+ $prefixedDBkey = $title->getPrefixedDBkey();
+ $revId = $this->mId;
- if ( !$content || !$content->isValid() ) {
- $t = $title->getPrefixedDBkey();
-
- throw new MWException( "Content of $t is not valid! Content model is $model" );
+ if ( !$content ) {
+ throw new MWException(
+ "Content of revision $revId ($prefixedDBkey) could not be loaded for validation!"
+ );
+ }
+ if ( !$content->isValid() ) {
+ throw new MWException(
+ "Content of revision $revId ($prefixedDBkey) is not valid! Content model is $model"
+ );
}
}
* @return string
*/
public static function base36Sha1( $text ) {
- return wfBaseConvert( sha1( $text ), 16, 36, 31 );
+ return Wikimedia\base_convert( sha1( $text ), 16, 36, 31 );
}
/**
array(
'page_id' => $pageId,
'page_latest=rev_id',
- ),
- __METHOD__ );
+ ),
+ __METHOD__,
+ array( 'FOR UPDATE' ) // T51581
+ );
if ( $current ) {
if ( !$user ) {