From: daniel Date: Tue, 24 Sep 2019 17:39:54 +0000 (+0200) Subject: newRevisionsFromBatch: don't throw on duplicate row. X-Git-Tag: 1.34.0-rc.0~88^2 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=5b34a67f12b477dfdfbeb311724ced251e516bf8;p=lhc%2Fweb%2Fwiklou.git newRevisionsFromBatch: don't throw on duplicate row. Bug: T228988 Change-Id: I907fe25692a74b591300b2f182ac6234c22c8071 --- diff --git a/includes/Revision/RevisionStore.php b/includes/Revision/RevisionStore.php index a5cf8404cb..a1aeccb297 100644 --- a/includes/Revision/RevisionStore.php +++ b/includes/Revision/RevisionStore.php @@ -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( diff --git a/tests/phpunit/includes/Revision/RevisionStoreDbTestBase.php b/tests/phpunit/includes/Revision/RevisionStoreDbTestBase.php index 4040ffc76e..6bf219dc7b 100644 --- a/tests/phpunit/includes/Revision/RevisionStoreDbTestBase.php +++ b/tests/phpunit/includes/Revision/RevisionStoreDbTestBase.php @@ -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' ) ); } }