From 6e85a18678a0404b657e67e8515f962fe38a6a5e Mon Sep 17 00:00:00 2001
From: fabrixxm <fabrix.xm@gmail.com>
Date: Thu, 29 Nov 2018 08:34:00 +0100
Subject: [PATCH] Storage: throw StorageException on errors

---
 src/Model/Storage/Filesystem.php       |  8 ++++----
 src/Model/Storage/StorageException.php | 15 +++++++++++++++
 2 files changed, 19 insertions(+), 4 deletions(-)
 create mode 100644 src/Model/Storage/StorageException.php

diff --git a/src/Model/Storage/Filesystem.php b/src/Model/Storage/Filesystem.php
index 07af0f1357..1cfb5effe8 100644
--- a/src/Model/Storage/Filesystem.php
+++ b/src/Model/Storage/Filesystem.php
@@ -58,13 +58,13 @@ class Filesystem implements IStorage
 		if (!is_dir($path)) {
 			if (!mkdir($path, 0770, true)) {
 				Logger::log("Failed to create dirs {$path}");
-				echo L10n::t("Filesystem storage failed to create '%s'. Check you write permissions.", $path);
+				throw new StorageException(L10n::t("Filesystem storage failed to create '%s'. Check you write permissions.", $path));
 				killme();
 			}
 		}
 
 		$base = self::getBasePath();
-		
+
 		while ($path !== $base) {
 			if (!is_file($path . "/index.html")) {
 				file_put_contents($path . "/index.html", "");
@@ -98,7 +98,7 @@ class Filesystem implements IStorage
 		$r = file_put_contents($file, $data);
 		if ($r === FALSE) {
 			Logger::log("Failed to write data to {$file}");
-			echo L10n::t("Filesystem storage failed to save data to '%s'. Check your write permissions", $file);
+			throw new StorageException(L10n::t("Filesystem storage failed to save data to '%s'. Check your write permissions", $file));
 			killme();
 		}
 		return $ref;
@@ -108,7 +108,7 @@ class Filesystem implements IStorage
 	{
 		$file = self::pathForRef($ref);
 		// return true if file doesn't exists. we want to delete it: success with zero work!
-		if (!is_file($file)) { 
+		if (!is_file($file)) {
 			return true;
 		}
 		return unlink($file);
diff --git a/src/Model/Storage/StorageException.php b/src/Model/Storage/StorageException.php
new file mode 100644
index 0000000000..4321bc1ceb
--- /dev/null
+++ b/src/Model/Storage/StorageException.php
@@ -0,0 +1,15 @@
+
+<?php
+/**
+ * @file src/Model/Storage/StorageException.php
+ * @brief Storage backend system
+ */
+
+namespace Friendica\Model\Storage;
+
+/**
+ * @brief Storage Exception
+ */
+class StorageException extends \Exception
+{
+}
-- 
2.39.5