From 2dc62d21f72e47e715f30446584d7e3af60102c0 Mon Sep 17 00:00:00 2001
From: Brion Vibber <brion@pobox.com>
Date: Wed, 25 Nov 2009 15:21:51 -0800
Subject: [PATCH] Catch and report exceptions from notice_to_omb_notice()
 instead of letting the OMB queue handler die.

---
 lib/omb.php | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/omb.php b/lib/omb.php
index 49496b774e..e2a6d9f3f5 100644
--- a/lib/omb.php
+++ b/lib/omb.php
@@ -67,7 +67,14 @@ function omb_hmac_sha1()
 function omb_broadcast_notice($notice)
 {
 
-    $omb_notice = notice_to_omb_notice($notice);
+    try {
+        $omb_notice = notice_to_omb_notice($notice);
+    } catch (Exception $e) {
+        // @fixme we should clean up or highlight the problem item
+        common_log(LOG_ERR, 'Invalid OMB outgoing notice for notice ' . $notice->id);
+        common_log(LOG_ERR, 'Error status '.$e);
+        return true;
+    }
 
     /* Get remote users subscribed to this profile. */
     $rp = new Remote_profile();
-- 
2.39.5