* @return string
*/
function closePage() {
+ if ( $this->currentTitle !== null ) {
+ $linkCache = MediaWikiServices::getInstance()->getLinkCache();
+ // In rare cases, link cache has the same key for some pages which
+ // might be read as part of the same batch. T220424 and T220316
+ $linkCache->clearLink( $this->currentTitle );
+ }
return " </page>\n";
}
} elseif ( isset( $row->old_text ) ) {
// Raw text from the database may have invalid chars
$text = strval( Revision::getRevisionText( $row ) );
- $text = $content_handler->exportTransform( $text, $content_format );
+ try {
+ $text = $content_handler->exportTransform( $text, $content_format );
+ }
+ catch ( MWException $ex ) {
+ // leave text as is; that's the way it goes
+ }
$out .= " " . Xml::elementClean( 'text',
[ 'xml:space' => 'preserve', 'bytes' => intval( $row->rev_len ) ],
strval( $text ) ) . "\n";