summaryrefslogtreecommitdiffstats
path: root/apps/files_versions
diff options
context:
space:
mode:
authorGit'Fellow <12234510+solracsf@users.noreply.github.com>2023-10-28 14:47:19 +0200
committerGitHub <noreply@github.com>2023-10-28 14:47:19 +0200
commitffeef99abc934dc576e1a44ec3f33e7966ad046b (patch)
treea1209a078b1364f2b63fb3695c8ae94336cbe13a /apps/files_versions
parentd56b1c28bab3daa3425d3ea552e34b0e607f08a3 (diff)
downloadnextcloud-server-ffeef99abc934dc576e1a44ec3f33e7966ad046b.tar.gz
nextcloud-server-ffeef99abc934dc576e1a44ec3f33e7966ad046b.zip
fix: Delete ghost versions of non-existing files
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Diffstat (limited to 'apps/files_versions')
-rw-r--r--apps/files_versions/lib/Storage.php5
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index 30f5c8073a1..56d9a8343c6 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -592,14 +592,17 @@ class Storage {
throw new DoesNotExistException('Could not find relative path of (' . $info->getPath() . ')');
}
- $node = $userFolder->get(substr($path, 0, -strlen('.v'.$version)));
try {
+ $node = $userFolder->get(substr($path, 0, -strlen('.v'.$version)));
$versionEntity = $versionsMapper->findVersionForFileId($node->getId(), $version);
$versionEntities[$info->getId()] = $versionEntity;
if ($versionEntity->getLabel() !== '') {
return false;
}
+ } catch (NotFoundException $e) {
+ // Original node not found, delete the version
+ return true;
} catch (DoesNotExistException $ex) {
// Version on FS can have no equivalent in the DB if they were created before the version naming feature.
// So we ignore DoesNotExistException.