diff options
author | Git'Fellow <12234510+solracsf@users.noreply.github.com> | 2023-12-05 09:45:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-05 09:45:55 +0100 |
commit | 4e2e475bd3a811d5f74bce3656d16523a0d448d4 (patch) | |
tree | cda066319dadef0733b09ea6cc8c2641b71da97b | |
parent | 9fb88104a5e11928c2b0d4d60558fe0f28b1144a (diff) | |
parent | de7e4e1612ae7f61c59d2a35b1ef9864e7e52331 (diff) | |
download | nextcloud-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.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. |