diff --git a/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php b/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php index b2490b9..ab38ceb 100644 --- a/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php +++ b/typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php @@ -443,7 +443,8 @@ class FileIndexRepository implements SingletonInterface ->from($this->table) ->where( $queryBuilder->expr()->gt('tstamp', $queryBuilder->quoteIdentifier('last_indexed')), - $queryBuilder->expr()->eq('storage', $queryBuilder->createNamedParameter($storage->getUid(), \PDO::PARAM_INT)) + $queryBuilder->expr()->eq('storage', $queryBuilder->createNamedParameter($storage->getUid(), \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('missing', 0) ) ->orderBy('tstamp', 'ASC') ->execute() diff --git a/typo3/sysext/core/Classes/Resource/Index/Indexer.php b/typo3/sysext/core/Classes/Resource/Index/Indexer.php index 17f2554..819d55c 100644 --- a/typo3/sysext/core/Classes/Resource/Index/Indexer.php +++ b/typo3/sysext/core/Classes/Resource/Index/Indexer.php @@ -14,6 +14,7 @@ namespace TYPO3\CMS\Core\Resource\Index; * The TYPO3 project - inspiring people to share! */ +use TYPO3\CMS\Core\Resource\Exception\FileDoesNotExistException; use TYPO3\CMS\Core\Resource\File; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Resource\ResourceStorage; @@ -108,8 +109,13 @@ class Indexer { $fileIndexRecords = $this->getFileIndexRepository()->findInStorageWithIndexOutstanding($this->storage, $maximumFileCount); foreach ($fileIndexRecords as $indexRecord) { - $fileObject = $this->getResourceFactory()->getFileObject($indexRecord['uid'], $indexRecord); - $this->extractMetaData($fileObject); + try { + $fileObject = $this->getResourceFactory()->getFileObject($indexRecord['uid'], $indexRecord); + $this->extractMetaData($fileObject); + } catch (FileDoesNotExistException $e) { + // mark file as missing, continue with next record + $this->getFileIndexRepository()->markFileAsMissing($indexRecord['uid']); + } } }