From bcd1f77c751196327d79fa2779821be39a2a6557 Mon Sep 17 00:00:00 2001 From: Michael J Rubinsky Date: Sat, 5 Jul 2014 22:21:51 -0400 Subject: [PATCH] Catch exceptions. Don't let an issue obtaining a single folder from taking down the entire sync. --- .../Core/lib/Horde/Core/ActiveSync/Driver.php | 96 ++++++++++++------- 1 file changed, 60 insertions(+), 36 deletions(-) diff --git a/framework/Core/lib/Horde/Core/ActiveSync/Driver.php b/framework/Core/lib/Horde/Core/ActiveSync/Driver.php index 76abf0f29cd..357909ac928 100644 --- a/framework/Core/lib/Horde/Core/ActiveSync/Driver.php +++ b/framework/Core/lib/Horde/Core/ActiveSync/Driver.php @@ -332,17 +332,23 @@ public function getFolders() $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_CALENDAR, $multiplex); if (is_array($temp)) { foreach ($temp as $id => $folder) { - $folders[] = $this->_getFolder( - Horde_ActiveSync::CLASS_CALENDAR . ':' . $id, - array( - 'class' => Horde_ActiveSync::CLASS_CALENDAR, - 'primary' => $folder['primary'], - 'display' => $folder['display'] - ) - ); + try { + $folders[] = $this->_getFolder( + Horde_ActiveSync::CLASS_CALENDAR . ':' . $id, + array( + 'class' => Horde_ActiveSync::CLASS_CALENDAR, + 'primary' => $folder['primary'], + 'display' => $folder['display'] + ) + ); + } catch (Horde_ActiveSync_Exception $e) { + } } } else { - $folders[] = $this->_getFolder($temp); + try { + $folders[] = $this->_getFolder($temp); + } catch (Horde_ActiveSync_Exception $e) { + } } } @@ -350,17 +356,23 @@ public function getFolders() $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_CONTACTS, $multiplex); if (is_array($temp)) { foreach ($temp as $id => $folder) { - $folders[] = $this->_getFolder( - Horde_ActiveSync::CLASS_CONTACTS . ':' . $id, - array( - 'class' => Horde_ActiveSync::CLASS_CONTACTS, - 'primary' => $folder['primary'], - 'display' => $folder['display'] - ) - ); + try { + $folders[] = $this->_getFolder( + Horde_ActiveSync::CLASS_CONTACTS . ':' . $id, + array( + 'class' => Horde_ActiveSync::CLASS_CONTACTS, + 'primary' => $folder['primary'], + 'display' => $folder['display'] + ) + ); + } catch (Horde_ActiveSync_Exception $e) { + } } } else { - $folders[] = $this->_getFolder($temp); + try { + $folders[] = $this->_getFolder($temp); + } catch (Horde_ActiveSync_Exception $e) { + } } } @@ -368,17 +380,23 @@ public function getFolders() $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_TASKS, $multiplex); if (is_array($temp)) { foreach ($temp as $id => $folder) { - $folders[] = $this->_getFolder( - Horde_ActiveSync::CLASS_TASKS . ':' . $id, - array( - 'class' => Horde_ActiveSync::CLASS_TASKS, - 'primary' => $folder['primary'], - 'display' => $folder['display'] - ) - ); + try { + $folders[] = $this->_getFolder( + Horde_ActiveSync::CLASS_TASKS . ':' . $id, + array( + 'class' => Horde_ActiveSync::CLASS_TASKS, + 'primary' => $folder['primary'], + 'display' => $folder['display'] + ) + ); + } catch (Horde_ActiveSync_Exception $e) { + } } } else { - $folders[] = $this->_getFolder($temp); + try { + $folders[] = $this->_getFolder($temp); + } catch (Horde_ActiveSync_Exception $e) { + } } } @@ -386,17 +404,23 @@ public function getFolders() $temp = $this->_connector->getFolders(Horde_ActiveSync::CLASS_NOTES, $multiplex); if (is_array($temp)) { foreach ($temp as $id => $folder) { - $folders[] = $this->_getFolder( - Horde_ActiveSync::CLASS_NOTES . ':' . $id, - array( - 'class' => Horde_ActiveSync::CLASS_NOTES, - 'primary' => $folder['primary'], - 'display' => $folder['display'] - ) - ); + try { + $folders[] = $this->_getFolder( + Horde_ActiveSync::CLASS_NOTES . ':' . $id, + array( + 'class' => Horde_ActiveSync::CLASS_NOTES, + 'primary' => $folder['primary'], + 'display' => $folder['display'] + ) + ); + } catch (Horde_ActiveSync_Exception $e) { + } } } else { - $folders[] = $this->_getFolder($temp); + try { + $folders[] = $this->_getFolder($temp); + } catch (Horde_ActiveSync_Exception $e) { + } } } if ($this->_version > Horde_ActiveSync::VERSION_TWELVEONE) {