diff options
-rw-r--r-- | lib/ping.php | 2 | ||||
-rw-r--r-- | lib/stompqueuemanager.php | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/lib/ping.php b/lib/ping.php index 3de541e9a..d26c73417 100644 --- a/lib/ping.php +++ b/lib/ping.php @@ -59,7 +59,7 @@ function ping_broadcast_notice($notice) { $response = xmlrpc_decode($file); - if (xmlrpc_is_fault($response)) { + if (is_array($response) && xmlrpc_is_fault($response)) { common_log(LOG_WARNING, "XML-RPC error for ping ($notify_url, $notice->id) ". "$response[faultString] ($response[faultCode])"); diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php index e7e1e00dd..06be2ba85 100644 --- a/lib/stompqueuemanager.php +++ b/lib/stompqueuemanager.php @@ -100,11 +100,16 @@ class StompQueueManager $notice = Notice::staticGet('id', $frame->body); if (empty($notice)) { - $this->_log(LOG_WARNING, 'Got ID '. $frame->body .' for non-existent notice'); - $this->con->ack($frame); - } else if ($handler->handle_notice($notice)) { - $this->_log(LOG_INFO, 'Successfully handled notice '. $notice->id .' posted at ' . $frame->headers['created']); + $this->_log(LOG_WARNING, 'Got ID '. $frame->body .' for non-existent notice in queue '. $queue); $this->con->ack($frame); + } else { + if ($handler->handle_notice($notice)) { + $this->_log(LOG_INFO, 'Successfully handled notice '. $notice->id .' posted at ' . $frame->headers['created'] . ' in queue '. $queue); + $this->con->ack($frame); + } else { + $this->_log(LOG_WARNING, 'Failed handling notice '. $notice->id .' posted at ' . $frame->headers['created'] . ' in queue '. $queue); + // Don't ack; it'll get re-sent + } unset($notice); } |