summaryrefslogtreecommitdiff
path: root/lib/distribqueuehandler.php
diff options
context:
space:
mode:
authorCraig Andrews <candrews@integralblue.com>2010-02-02 17:00:10 -0500
committerCraig Andrews <candrews@integralblue.com>2010-02-02 17:00:10 -0500
commit057ec1fceacbfec1f755a5bc6700a188aa70e33f (patch)
tree297839a71d9d3a7a0a7935d5dbcc9c4a3c6c99bb /lib/distribqueuehandler.php
parentd14651706cf728f116b7ae44c6a6e37b5eb918a4 (diff)
parentf60f2c523f2e7018ea923898931287e7a99e8f44 (diff)
Merge branch '0.9.x' into 1.0.x
Conflicts: EVENTS.txt lib/imqueuehandler.php lib/jabber.php lib/util.php plugins/Xmpp/Sharing_XMPP.php
Diffstat (limited to 'lib/distribqueuehandler.php')
-rw-r--r--lib/distribqueuehandler.php55
1 files changed, 46 insertions, 9 deletions
diff --git a/lib/distribqueuehandler.php b/lib/distribqueuehandler.php
index f458d238d..4477468d0 100644
--- a/lib/distribqueuehandler.php
+++ b/lib/distribqueuehandler.php
@@ -62,23 +62,60 @@ class DistribQueueHandler
{
// XXX: do we need to change this for remote users?
- $notice->saveTags();
+ try {
+ $notice->saveTags();
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
- $groups = $notice->saveGroups();
+ try {
+ $groups = $notice->saveGroups();
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
- $recipients = $notice->saveReplies();
+ try {
+ $recipients = $notice->saveReplies();
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
- $notice->addToInboxes($groups, $recipients);
+ try {
+ $notice->addToInboxes($groups, $recipients);
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
- $notice->saveUrls();
+ try {
+ $notice->saveUrls();
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
- Event::handle('EndNoticeSave', array($notice));
+ try {
+ Event::handle('EndNoticeSave', array($notice));
+ // Enqueue for other handlers
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
- // Enqueue for other handlers
-
- common_enqueue_notice($notice);
+ try {
+ common_enqueue_notice($notice);
+ } catch (Exception $e) {
+ $this->logit($notice, $e);
+ }
return true;
}
+
+ protected function logit($notice, $e)
+ {
+ common_log(LOG_ERR, "Distrib queue exception saving notice $notice->id: " .
+ $e->getMessage() . ' ' .
+ str_replace("\n", " ", $e->getTraceAsString()));
+
+ // We'll still return true so we don't get stuck in a loop
+ // trying to run a bad insert over and over...
+ }
}