Merge "Type hint against LinkTarget in WatchedItemStore"
[lhc/web/wiklou.git] / includes / import / ImportableOldRevisionImporter.php
index 33fad3e..ad62e16 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 use Psr\Log\LoggerInterface;
-use Wikimedia\Rdbms\LoadBalancer;
+use Wikimedia\Rdbms\ILoadBalancer;
 
 /**
  * @since 1.31
@@ -19,19 +19,19 @@ class ImportableOldRevisionImporter implements OldRevisionImporter {
        private $doUpdates;
 
        /**
-        * @var LoadBalancer
+        * @var ILoadBalancer
         */
        private $loadBalancer;
 
        /**
         * @param bool $doUpdates
         * @param LoggerInterface $logger
-        * @param LoadBalancer $loadBalancer
+        * @param ILoadBalancer $loadBalancer
         */
        public function __construct(
                $doUpdates,
                LoggerInterface $logger,
-               LoadBalancer $loadBalancer
+               ILoadBalancer $loadBalancer
        ) {
                $this->doUpdates = $doUpdates;
                $this->logger = $logger;
@@ -68,18 +68,20 @@ class ImportableOldRevisionImporter implements OldRevisionImporter {
 
                        // Note: sha1 has been in XML dumps since 2012. If you have an
                        // older dump, the duplicate detection here won't work.
-                       $prior = $dbw->selectField( 'revision', '1',
-                               [ 'rev_page' => $pageId,
+                       if ( $importableRevision->getSha1Base36() !== false ) {
+                               $prior = $dbw->selectField( 'revision', '1',
+                                       [ 'rev_page' => $pageId,
                                        'rev_timestamp' => $dbw->timestamp( $importableRevision->getTimestamp() ),
                                        'rev_sha1' => $importableRevision->getSha1Base36() ],
-                               __METHOD__
-                       );
-                       if ( $prior ) {
-                               // @todo FIXME: This could fail slightly for multiple matches :P
-                               $this->logger->debug( __METHOD__ . ": skipping existing revision for [[" .
-                                       $importableRevision->getTitle()->getPrefixedText() . "]], timestamp " .
-                                       $importableRevision->getTimestamp() . "\n" );
-                               return false;
+                                       __METHOD__
+                               );
+                               if ( $prior ) {
+                                       // @todo FIXME: This could fail slightly for multiple matches :P
+                                       $this->logger->debug( __METHOD__ . ": skipping existing revision for [[" .
+                                               $importableRevision->getTitle()->getPrefixedText() . "]], timestamp " .
+                                               $importableRevision->getTimestamp() . "\n" );
+                                       return false;
+                               }
                        }
                }