diff options
author | Vincent Petry <vincent@nextcloud.com> | 2022-10-26 18:14:49 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-26 18:14:49 +0300 |
commit | bbb4ec56126ded179489fec9b433563b8b468ad7 (patch) | |
tree | 4010dfdc5fa30f1eb7ed8ad041664007a213ffb0 | |
parent | 67ef87f23975eb94527b9c96fcf36fdfec133f3d (diff) | |
parent | 9805190d22a62fb4d5fe037f8de1f41d8ecfce7a (diff) |
Merge pull request #2155 from nextcloud/backport/2154/stable25
[stable25] Move check if node exists earlier
-rw-r--r-- | lib/Trash/TrashBackend.php | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/Trash/TrashBackend.php b/lib/Trash/TrashBackend.php index a6d3b068..0f4d5122 100644 --- a/lib/Trash/TrashBackend.php +++ b/lib/Trash/TrashBackend.php @@ -376,20 +376,24 @@ class TrashBackend implements ITrashBackend { $nodes = []; // cache foreach ($trashItems as $groupTrashItem) { $nodeName = $groupTrashItem['name'] . '.d' . $groupTrashItem['deleted_time']; - $nodes[$nodeName] = $node = $trashFolder->get($nodeName); + try { + $nodes[$nodeName] = $node = $trashFolder->get($nodeName); + } catch (NotFoundException $e) { + $this->trashManager->removeItem($folderId, $groupTrashItem['name'], $groupTrashItem['deleted_time']); + continue; + } $sizeInTrash += $node->getSize(); } foreach ($trashItems as $groupTrashItem) { if ($expiration->isExpired($groupTrashItem['deleted_time'], $folder['quota'] > 0 && $folder['quota'] < ($folder['size'] + $sizeInTrash))) { - try { - $nodeName = $groupTrashItem['name'] . '.d' . $groupTrashItem['deleted_time']; - $node = $nodes[$nodeName]; - $size += $node->getSize(); - $count += 1; - } catch (NotFoundException $e) { - $this->trashManager->removeItem($folderId, $groupTrashItem['name'], $groupTrashItem['deleted_time']); + $nodeName = $groupTrashItem['name'] . '.d' . $groupTrashItem['deleted_time']; + if (!isset($nodes[$nodeName])) { continue; } + + $node = $nodes[$nodeName]; + $size += $node->getSize(); + $count += 1; if ($node->getStorage()->unlink($node->getInternalPath()) === false) { throw new \Exception('Failed to remove item from trashbin'); } |