summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGit'Fellow <12234510+solracsf@users.noreply.github.com>2023-12-05 09:45:55 +0100
committerGitHub <noreply@github.com>2023-12-05 09:45:55 +0100
commit4e2e475bd3a811d5f74bce3656d16523a0d448d4 (patch)
treecda066319dadef0733b09ea6cc8c2641b71da97b
parent9fb88104a5e11928c2b0d4d60558fe0f28b1144a (diff)
parentde7e4e1612ae7f61c59d2a35b1ef9864e7e52331 (diff)
downloadnextcloud-server-4e2e475bd3a811d5f74bce3656d16523a0d448d4.tar.gz
nextcloud-server-4e2e475bd3a811d5f74bce3656d16523a0d448d4.zip
Merge pull request #41296 from nextcloud/backport/41173/stable27
[stable27] fix: Delete ghost versions of non-existing files
-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.