aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_versions/lib/Listener/FileEventsListener.php44
1 files changed, 43 insertions, 1 deletions
diff --git a/apps/files_versions/lib/Listener/FileEventsListener.php b/apps/files_versions/lib/Listener/FileEventsListener.php
index fd777067537..d5c60dd9343 100644
--- a/apps/files_versions/lib/Listener/FileEventsListener.php
+++ b/apps/files_versions/lib/Listener/FileEventsListener.php
@@ -125,6 +125,22 @@ class FileEventsListener implements IEventListener {
}
public function touch_hook(Node $node): void {
+ // Do not handle folders.
+ if ($node instanceof Folder) {
+ return;
+ }
+
+ if ($node instanceof NonExistingFile) {
+ $this->logger->error(
+ 'Failed to create or update version for {path}, node does not exist',
+ [
+ 'path' => $node->getPath(),
+ ]
+ );
+
+ return;
+ }
+
$previousNode = $this->nodesTouched[$node->getId()] ?? null;
if ($previousNode === null) {
@@ -152,7 +168,22 @@ class FileEventsListener implements IEventListener {
public function created(Node $node): void {
// Do not handle folders.
- if ($node instanceof File && $this->versionManager instanceof INeedSyncVersionBackend) {
+ if (!($node instanceof File)) {
+ return;
+ }
+
+ if ($node instanceof NonExistingFile) {
+ $this->logger->error(
+ 'Failed to create version for {path}, node does not exist',
+ [
+ 'path' => $node->getPath(),
+ ]
+ );
+
+ return;
+ }
+
+ if ($this->versionManager instanceof INeedSyncVersionBackend) {
$this->versionManager->createVersionEntity($node);
}
}
@@ -190,6 +221,17 @@ class FileEventsListener implements IEventListener {
return;
}
+ if ($node instanceof NonExistingFile) {
+ $this->logger->error(
+ 'Failed to create or update version for {path}, node does not exist',
+ [
+ 'path' => $node->getPath(),
+ ]
+ );
+
+ return;
+ }
+
$writeHookInfo = $this->writeHookInfo[$node->getId()] ?? null;
if ($writeHookInfo === null) {