Merge "newRevisionsFromBatch: don't throw on duplicate row."
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 26 Sep 2019 19:39:58 +0000 (19:39 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 26 Sep 2019 19:39:58 +0000 (19:39 +0000)
includes/Revision/RevisionStore.php
tests/phpunit/includes/Revision/RevisionStoreDbTestBase.php

index a5cf840..a1aeccb 100644 (file)
@@ -1928,7 +1928,10 @@ class RevisionStore
                $titlesByPageId = [];
                foreach ( $rows as $row ) {
                        if ( isset( $rowsByRevId[$row->rev_id] ) ) {
-                               throw new InvalidArgumentException( "Duplicate rows in newRevisionsFromBatch {$row->rev_id}" );
+                               $result->warning(
+                                       'internalerror',
+                                       "Duplicate rows in newRevisionsFromBatch, rev_id {$row->rev_id}"
+                               );
                        }
                        if ( $title && $row->rev_page != $title->getArticleID() ) {
                                throw new InvalidArgumentException(
index 4040ffc..6bf219d 100644 (file)
@@ -2076,8 +2076,10 @@ abstract class RevisionStoreDbTestBase extends MediaWikiTestCase {
                /** @var Revision $rev1 */
                $rev1 = $editStatus->getValue()['revision'];
 
-               $this->setExpectedException( InvalidArgumentException::class );
-               MediaWikiServices::getInstance()->getRevisionStore()
+               $status = MediaWikiServices::getInstance()->getRevisionStore()
                        ->newRevisionsFromBatch( [ $this->revisionToRow( $rev1 ), $this->revisionToRow( $rev1 ) ] );
+
+               $this->assertFalse( $status->isGood() );
+               $this->assertTrue( $status->hasMessage( 'internalerror' ) );
        }
 }