diff --git a/lib/private/Collaboration/Reference/File/FileReferenceEventListener.php b/lib/private/Collaboration/Reference/File/FileReferenceEventListener.php index 9c18531c8e7..0b2385a0555 100644 --- a/lib/private/Collaboration/Reference/File/FileReferenceEventListener.php +++ b/lib/private/Collaboration/Reference/File/FileReferenceEventListener.php @@ -8,21 +8,22 @@ declare(strict_types=1); namespace OC\Collaboration\Reference\File; -use OC\Files\Node\NonExistingFile; -use OC\Files\Node\NonExistingFolder; use OCP\Collaboration\Reference\IReferenceManager; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventListener; use OCP\Files\Events\Node\NodeDeletedEvent; use OCP\Files\Events\Node\NodeRenamedEvent; +use OCP\Files\NotFoundException; use OCP\Share\Events\ShareCreatedEvent; use OCP\Share\Events\ShareDeletedEvent; +use Psr\Log\LoggerInterface; /** @template-implements IEventListener */ class FileReferenceEventListener implements IEventListener { public function __construct( private IReferenceManager $manager, + private LoggerInterface $logger, ) { } @@ -38,11 +39,12 @@ class FileReferenceEventListener implements IEventListener { */ public function handle(Event $event): void { if ($event instanceof NodeDeletedEvent) { - if ($event->getNode() instanceof NonExistingFolder || $event->getNode() instanceof NonExistingFile) { - return; + try { + $this->manager->invalidateCache((string)$event->getNode()->getId()); + } catch (NotFoundException $e) { + // Non existing node might not have an id + $this->logger->debug('Could not invalidate reference cache for deleted node', ['exception' => $e]); } - - $this->manager->invalidateCache((string)$event->getNode()->getId()); } if ($event instanceof NodeRenamedEvent) { $this->manager->invalidateCache((string)$event->getTarget()->getId());