From 3e1a7e3c1efda7f122f359505f1ce898c1d4f262 Mon Sep 17 00:00:00 2001
From: Georg Ringer <georg.ringer@gmail.com>
Date: Tue, 12 Sep 2023 06:54:22 +0200
Subject: [PATCH] [BUGFIX] Always update index time when saving metadata
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Resolves: #101730
Releases: main, 12.4, 11.5
Change-Id: I9e400e1c582f84602b6aa8ef3cdd9a85f4e5b93e
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81057
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: core-ci <typo3@b13.com>
Tested-by: Stefan Bürk <stefan@buerk.tech>
---
 .../sysext/core/Classes/Resource/Index/Indexer.php  | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/typo3/sysext/core/Classes/Resource/Index/Indexer.php b/typo3/sysext/core/Classes/Resource/Index/Indexer.php
index 632a3c9ac9ef..2f50eb6c503b 100644
--- a/typo3/sysext/core/Classes/Resource/Index/Indexer.php
+++ b/typo3/sysext/core/Classes/Resource/Index/Indexer.php
@@ -79,11 +79,13 @@ class Indexer implements LoggerAwareInterface
         }
 
         $fileProperties = $this->gatherFileInformationArray($identifier);
-        $record = $this->getFileIndexRepository()->addRaw($fileProperties);
+        $fileIndexRepository = $this->getFileIndexRepository();
 
+        $record = $fileIndexRepository->addRaw($fileProperties);
         $fileObject = $this->getResourceFactory()->getFileObject($record['uid'], $record);
-        $metaData = $this->extractRequiredMetaData($fileObject);
+        $fileIndexRepository->updateIndexingTime($fileObject->getUid());
 
+        $metaData = $this->extractRequiredMetaData($fileObject);
         if ($this->storage->autoExtractMetadataEnabled()) {
             $metaData = array_merge($metaData, $this->getExtractorService()->extractMetaData($fileObject));
         }
@@ -103,13 +105,16 @@ class Indexer implements LoggerAwareInterface
         $updatedInformation = $this->gatherFileInformationArray($fileObject->getIdentifier());
         $fileObject->updateProperties($updatedInformation);
 
-        $this->getFileIndexRepository()->update($fileObject);
-        $metaData = $this->extractRequiredMetaData($fileObject);
+        $fileIndexRepository = $this->getFileIndexRepository();
+        $fileIndexRepository->update($fileObject);
+        $fileIndexRepository->updateIndexingTime($fileObject->getUid());
 
+        $metaData = $this->extractRequiredMetaData($fileObject);
         if ($this->storage->autoExtractMetadataEnabled()) {
             $metaData = array_merge($metaData, $this->getExtractorService()->extractMetaData($fileObject));
         }
         $fileObject->getMetaData()->add($metaData)->save();
+
         return $fileObject;
     }
 
-- 
GitLab