diff options
author | Git'Fellow <12234510+solracsf@users.noreply.github.com> | 2023-10-28 14:47:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-28 14:47:19 +0200 |
commit | ffeef99abc934dc576e1a44ec3f33e7966ad046b (patch) | |
tree | a1209a078b1364f2b63fb3695c8ae94336cbe13a /apps/files_versions | |
parent | d56b1c28bab3daa3425d3ea552e34b0e607f08a3 (diff) | |
download | nextcloud-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.php | 5 |
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. |