Don't store PEAR_Errors in the session.
authorJan Schneider <jan@horde.org>
Tue, 12 Jan 2010 09:20:37 +0000 (10:20 +0100)
committerJan Schneider <jan@horde.org>
Tue, 12 Jan 2010 11:50:51 +0000 (12:50 +0100)
kronolith/lib/Driver/Ical.php

index 8e31006..4967722 100644 (file)
@@ -193,6 +193,9 @@ class Kronolith_Driver_Ical extends Kronolith_Driver
         }
 
         if ($cache && !empty($_SESSION['kronolith']['remote'][$url])) {
+            if (!is_object($_SESSION['kronolith']['remote'][$url])) {
+                return PEAR::raiseError($_SESSION['kronolith']['remote'][$url]);
+            }
             return $_SESSION['kronolith']['remote'][$url];
         }
 
@@ -216,15 +219,15 @@ class Kronolith_Driver_Ical extends Kronolith_Driver
             Horde::logMessage(sprintf('Timed out retrieving remote calendar: url = "%s"',
                                       $url),
                               __FILE__, __LINE__, PEAR_LOG_INFO);
-            $_SESSION['kronolith']['remote'][$url] = PEAR::raiseError(sprintf(_("Could not open %s."), $url));
-            return $_SESSION['kronolith']['remote'][$url];
+            $_SESSION['kronolith']['remote'][$url] = sprintf(_("Could not open %s."), $url);
+            return PEAR::raiseError($_SESSION['kronolith']['remote'][$url]);
         }
         if ($http->getResponseCode() != 200) {
             Horde::logMessage(sprintf('Failed to retrieve remote calendar: url = "%s", status = %s',
                                       $url, $http->getResponseCode()),
                               __FILE__, __LINE__, PEAR_LOG_INFO);
-            $_SESSION['kronolith']['remote'][$url] = PEAR::raiseError(sprintf(_("Could not open %s."), $url), $http->getResponseCode());
-            return $_SESSION['kronolith']['remote'][$url];
+            $_SESSION['kronolith']['remote'][$url] = sprintf(_("Could not open %s."), $url);
+            return PEAR::raiseError($_SESSION['kronolith']['remote'][$url], $http->getResponseCode());
         }
 
         /* Log fetch at DEBUG level. */