From abc20536a649e6810bac38369ab3a83a5eb95f26 Mon Sep 17 00:00:00 2001 From: Chuck Hagenbuch Date: Sun, 23 Jan 2011 22:59:04 -0500 Subject: [PATCH] DB may have been closed before write() - reconnect if it's not active --- .../SessionHandler/lib/Horde/SessionHandler/Storage/Sql.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/framework/SessionHandler/lib/Horde/SessionHandler/Storage/Sql.php b/framework/SessionHandler/lib/Horde/SessionHandler/Storage/Sql.php index 39cda3c69..281cb3300 100644 --- a/framework/SessionHandler/lib/Horde/SessionHandler/Storage/Sql.php +++ b/framework/SessionHandler/lib/Horde/SessionHandler/Storage/Sql.php @@ -72,11 +72,14 @@ class Horde_SessionHandler_Storage_Sql extends Horde_SessionHandler_Storage public function close() { /* Close any open transactions. */ - try { - $this->_db->commitDbTransaction(); - } catch (Horde_Db_Exception $e) { - throw new Horde_SessionHandler_Exception($e); + if ($this->_db->transactionStarted()) { + try { + $this->_db->commitDbTransaction(); + } catch (Horde_Db_Exception $e) { + return false; + } } + return true; } /** @@ -104,6 +107,8 @@ class Horde_SessionHandler_Storage_Sql extends Horde_SessionHandler_Storage */ public function write($id, $session_data) { + if (!$this->_db->isActive()) { $this->_db->reconnect(); } + /* Build the SQL query. */ $query = sprintf('SELECT session_id FROM %s WHERE session_id = ?', $this->_params['table']); -- 2.11.0