Merge pull request #56230 from nextcloud/backport/56117/stable32

[stable32] fix(files_versions): Do not assume source exist when migrating versions to new storage
pull/56232/head
Louis 2025-11-06 10:57:34 +07:00 committed by GitHub
commit 2ac754211e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 17 additions and 1 deletions

@ -27,6 +27,7 @@ use OCP\Files\Node;
use OCP\Files\Storage\IStorage;
use OCP\IUser;
use OCP\IUserSession;
use Psr\Log\LoggerInterface;
/** @template-implements IEventListener<Event> */
class VersionStorageMoveListener implements IEventListener {
@ -36,6 +37,7 @@ class VersionStorageMoveListener implements IEventListener {
public function __construct(
private IVersionManager $versionManager,
private IUserSession $userSession,
private LoggerInterface $logger,
) {
}
@ -98,7 +100,21 @@ class VersionStorageMoveListener implements IEventListener {
$source = $this->movedNodes[$target->getId()];
}
/** @var File $source */
if ($source === null) {
$this->logger->warning(
'Failed to retrieve source file during version move/copy.',
[
'eventClass' => get_class($event),
'targetPath' => $target->getPath(),
'targetId' => $target->getId(),
'movedNodesKeys' => array_keys($this->movedNodes),
'sourceBackendClass' => get_class($sourceBackend),
'targetBackendClass' => get_class($targetBackend),
]
);
return;
}
$this->handleMoveOrCopy($event, $user, $source, $target, $sourceBackend, $targetBackend);
} elseif ($target instanceof Folder) {
/** @var Folder $source */