Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/groupfolders.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Petry <vincent@nextcloud.com>2022-10-26 15:35:02 +0300
committerGitHub <noreply@github.com>2022-10-26 15:35:02 +0300
commitf6b7c681cb50d6736abbf3b22196f20a0f3b9de0 (patch)
tree0a68703d907768657e502324b240063ae874c085
parentb6d1c604afd4be63c8d7b1c86a8fde0fabbfbb77 (diff)
parentda1634a125264fb2abc7adcf0af7c20d71cf248a (diff)
Merge pull request #2154 from nextcloud/fix/expire-not-found
Move check if node exists earlier
-rw-r--r--lib/Trash/TrashBackend.php20
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');
}