From 68df9854a6d17e7f621db31e8226bd0d3aa23f0e Mon Sep 17 00:00:00 2001 From: Salimane Adjao Moustapha Date: Wed, 7 Dec 2011 17:14:17 +0800 Subject: [PATCH] when reserving jobs, check if the payload received from popping a queue is a valid object (fix bug whereby jobs are reserved based on an erroneous payload) --- lib/Resque/Job.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/Resque/Job.php b/lib/Resque/Job.php index ee4aaba..257a3a3 100644 --- a/lib/Resque/Job.php +++ b/lib/Resque/Job.php @@ -27,7 +27,7 @@ class Resque_Job * @var object Object containing details of the job. */ public $payload; - + /** * @var object Instance of the class performing work for this job. */ @@ -84,7 +84,7 @@ class Resque_Job public static function reserve($queue) { $payload = Resque::pop($queue); - if(!$payload) { + if(!is_object($payload)) { return false; } @@ -116,7 +116,7 @@ class Resque_Job $status = new Resque_Job_Status($this->payload['id']); return $status->get(); } - + /** * Get the arguments supplied to this job. * @@ -127,10 +127,10 @@ class Resque_Job if (!isset($this->payload['args'])) { return array(); } - + return $this->payload['args'][0]; } - + /** * Get the instantiated object for this job that will be performing work. * @@ -171,7 +171,7 @@ class Resque_Job $instance = $this->getInstance(); try { Resque_Event::trigger('beforePerform', $this); - + if(method_exists($instance, 'setUp')) { $instance->setUp(); } @@ -188,7 +188,7 @@ class Resque_Job catch(Resque_Job_DontPerform $e) { return false; } - + return true; }