From e1998b6b6cd1e66e743fcebfe954345430c67cd7 Mon Sep 17 00:00:00 2001
From: provokateurin <kate@provokateurin.de>
Date: Mon, 30 Sep 2024 12:45:44 +0200
Subject: [PATCH] fix(Storage): Fix getDirectoryContent() return type

Signed-off-by: provokateurin <kate@provokateurin.de>
---
 lib/private/Files/Storage/Common.php               | 2 +-
 lib/private/Files/Storage/Storage.php              | 2 +-
 lib/private/Files/Storage/Wrapper/Availability.php | 4 ++--
 lib/private/Files/Storage/Wrapper/Jail.php         | 2 +-
 lib/private/Files/Storage/Wrapper/Wrapper.php      | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php
index d78a6ca1ab35e..746fe17d7c047 100644
--- a/lib/private/Files/Storage/Common.php
+++ b/lib/private/Files/Storage/Common.php
@@ -750,7 +750,7 @@ public function writeStream(string $path, $stream, ?int $size = null): int {
 		return $count;
 	}
 
-	public function getDirectoryContent($directory): \Traversable|false {
+	public function getDirectoryContent($directory): \Traversable {
 		$dh = $this->opendir($directory);
 
 		if ($dh === false) {
diff --git a/lib/private/Files/Storage/Storage.php b/lib/private/Files/Storage/Storage.php
index 741100ca117e6..3b14b1b84e36b 100644
--- a/lib/private/Files/Storage/Storage.php
+++ b/lib/private/Files/Storage/Storage.php
@@ -72,5 +72,5 @@ public function getMetaData($path): ?array;
 	 * - storage_mtime
 	 * - permissions
 	 */
-	public function getDirectoryContent($directory): \Traversable|false;
+	public function getDirectoryContent($directory): \Traversable;
 }
diff --git a/lib/private/Files/Storage/Wrapper/Availability.php b/lib/private/Files/Storage/Wrapper/Availability.php
index a29239d034b13..1a2824614c1e2 100644
--- a/lib/private/Files/Storage/Wrapper/Availability.php
+++ b/lib/private/Files/Storage/Wrapper/Availability.php
@@ -438,13 +438,13 @@ protected function setUnavailable(?StorageNotAvailableException $e): void {
 
 
 
-	public function getDirectoryContent($directory): \Traversable|false {
+	public function getDirectoryContent($directory): \Traversable {
 		$this->checkAvailability();
 		try {
 			return parent::getDirectoryContent($directory);
 		} catch (StorageNotAvailableException $e) {
 			$this->setUnavailable($e);
-			return false;
+			return new \EmptyIterator();
 		}
 	}
 }
diff --git a/lib/private/Files/Storage/Wrapper/Jail.php b/lib/private/Files/Storage/Wrapper/Jail.php
index d0cf1c42236e8..256d669ede78d 100644
--- a/lib/private/Files/Storage/Wrapper/Jail.php
+++ b/lib/private/Files/Storage/Wrapper/Jail.php
@@ -262,7 +262,7 @@ public function writeStream(string $path, $stream, ?int $size = null): int {
 		}
 	}
 
-	public function getDirectoryContent($directory): \Traversable|false {
+	public function getDirectoryContent($directory): \Traversable {
 		return $this->getWrapperStorage()->getDirectoryContent($this->getUnjailedPath($directory));
 	}
 }
diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php
index 655bbc7ef75f4..903f6e5e470a6 100644
--- a/lib/private/Files/Storage/Wrapper/Wrapper.php
+++ b/lib/private/Files/Storage/Wrapper/Wrapper.php
@@ -331,7 +331,7 @@ public function writeStream(string $path, $stream, ?int $size = null): int {
 		}
 	}
 
-	public function getDirectoryContent($directory): \Traversable|false {
+	public function getDirectoryContent($directory): \Traversable {
 		return $this->getWrapperStorage()->getDirectoryContent($directory);
 	}