[Pkg-owncloud-commits] [owncloud] 73/273: Check if classes/method exists before trying to call them in background jobs
David Prévot
taffit at moszumanska.debian.org
Fri Jul 4 03:12:59 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit 437094bbfc4230ed4b8b8cc797738ddd4ef7f1aa
Author: Robin Appelman <icewind at owncloud.com>
Date: Thu Jun 26 22:39:40 2014 +0200
Check if classes/method exists before trying to call them in background jobs
---
lib/private/backgroundjob/joblist.php | 4 ++++
lib/private/backgroundjob/legacy/queuedjob.php | 4 +++-
lib/private/backgroundjob/legacy/regularjob.php | 4 +++-
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/lib/private/backgroundjob/joblist.php b/lib/private/backgroundjob/joblist.php
index 6641097..09bba53 100644
--- a/lib/private/backgroundjob/joblist.php
+++ b/lib/private/backgroundjob/joblist.php
@@ -152,6 +152,10 @@ class JobList implements IJobList {
if ($class === 'OC_Cache_FileGlobalGC') {
$class = '\OC\Cache\FileGlobalGC';
}
+ if (class_exists($class)) {
+ // job from disabled app or old version of an app, no need to do anything
+ return null;
+ }
$job = new $class();
$job->setId($row['id']);
$job->setLastRun($row['last_run']);
diff --git a/lib/private/backgroundjob/legacy/queuedjob.php b/lib/private/backgroundjob/legacy/queuedjob.php
index 2bc0011..c5705ab 100644
--- a/lib/private/backgroundjob/legacy/queuedjob.php
+++ b/lib/private/backgroundjob/legacy/queuedjob.php
@@ -13,6 +13,8 @@ class QueuedJob extends \OC\BackgroundJob\QueuedJob {
$class = $argument['klass'];
$method = $argument['method'];
$parameters = $argument['parameters'];
- call_user_func(array($class, $method), $parameters);
+ if (is_callable(array($class, $method))) {
+ call_user_func(array($class, $method), $parameters);
+ }
}
}
diff --git a/lib/private/backgroundjob/legacy/regularjob.php b/lib/private/backgroundjob/legacy/regularjob.php
index d4cfa34..eb85a30 100644
--- a/lib/private/backgroundjob/legacy/regularjob.php
+++ b/lib/private/backgroundjob/legacy/regularjob.php
@@ -10,6 +10,8 @@ namespace OC\BackgroundJob\Legacy;
class RegularJob extends \OC\BackgroundJob\Job {
public function run($argument) {
- call_user_func($argument);
+ if (is_callable($argument)) {
+ call_user_func($argument);
+ }
}
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list