From 79da782892282ffc6390953fdcf2d496c6adc0fd Mon Sep 17 00:00:00 2001
From: Michael Gapczynski <mtgap@owncloud.com>
Date: Tue, 26 Jun 2012 20:37:36 -0400
Subject: [PATCH] Improve error handling of Dropbox storage backend

---
 apps/files_external/lib/dropbox.php | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index 5e94277c6d4..6f1a154a122 100755
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -41,7 +41,11 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
 			return $this->metaData[$path];
 		} else {
 			if ($list) {
-				$response = $this->dropbox->getMetaData($path);
+				try {
+					$response = $this->dropbox->getMetaData($path);
+				} catch (Exception $exception) {
+					return false;
+				}
 				if ($response && isset($response['contents'])) {
 					$contents = $response['contents'];
 					// Cache folder's contents
@@ -90,7 +94,7 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
 		if ($metaData = $this->getMetaData($path)) {
 			$stat['size'] = $metaData['bytes'];
 			$stat['atime'] = time();
-			$stat['mtime'] = strtotime($metaData['modified']);
+			$stat['mtime'] = (isset($metaData['modified'])) ? strtotime($metaData['modified']) : time();
 			$stat['ctime'] = $stat['mtime'];
 			return $stat;
 		}
@@ -111,11 +115,11 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
 	}
 
 	public function is_readable($path) {
-		return true;
+		return self::file_exists($path);
 	}
 
 	public function is_writable($path) {
-		return true;
+		return self::file_exists($path);
 	}
 
 	public function file_exists($path) {
-- 
GitLab