]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/stompqueuemanager.php
Merge branch 'nightly' into 'nightly'
[quix0rs-gnu-social.git] / lib / stompqueuemanager.php
index 4084470e211f9cc0c656c18512f637bf6cd48e19..b1afe176a158d6c861ebed6b6c7ba37f8a4746e8 100644 (file)
@@ -151,7 +151,7 @@ class StompQueueManager extends QueueManager
         $envelope = array('site' => $siteNickname ? $siteNickname : common_config('site', 'nickname'),
                           'handler' => $queue,
                           'payload' => $this->encode($object));
-        $msg = serialize($envelope);
+        $msg = base64_encode(serialize($envelope));
 
         $props = array('created' => common_sql_now());
         if ($this->isPersistent($queue)) {
@@ -479,7 +479,7 @@ class StompQueueManager extends QueueManager
     protected function handleItem($frame)
     {
         $host = $this->cons[$this->defaultIdx]->getServer();
-        $message = unserialize($frame->body);
+        $message = unserialize(base64_decode($frame->body));
 
         if ($message === false) {
             $this->_log(LOG_ERR, "Can't unserialize frame: {$frame->body}");
@@ -490,7 +490,7 @@ class StompQueueManager extends QueueManager
         $site = $message['site'];
         $queue = $message['handler'];
 
-        if ($this->isDeadletter($frame, $message)) {
+        if ($this->isDeadLetter($frame, $message)) {
             $this->stats('deadletter', $queue);
                return false;
         }
@@ -509,15 +509,13 @@ class StompQueueManager extends QueueManager
                 $frame->headers['created'] . " in queue $queue from $host";
         $this->_log(LOG_DEBUG, "Dequeued $info");
 
-        $handler = $this->getHandler($queue);
-        if (!$handler) {
+        try {
+            $handler = $this->getHandler($queue);
+            $ok = $handler->handle($item);
+        } catch (NoQueueHandlerException $e) {
             $this->_log(LOG_ERR, "Missing handler class; skipping $info");
             $this->stats('badhandler', $queue);
             return false;
-        }
-
-        try {
-            $ok = $handler->handle($item);
         } catch (Exception $e) {
             $this->_log(LOG_ERR, "Exception on queue $queue: " . $e->getMessage());
             $ok = false;