diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-06-26 22:39:40 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-06-26 22:40:12 +0200 |
commit | 437094bbfc4230ed4b8b8cc797738ddd4ef7f1aa (patch) | |
tree | f27dba56f853c44d49c57f77d734f8cb76494642 /lib/private | |
parent | 5b189315b53b14a51cc6b7b7b94905c66e8bb486 (diff) | |
download | nextcloud-server-437094bbfc4230ed4b8b8cc797738ddd4ef7f1aa.tar.gz nextcloud-server-437094bbfc4230ed4b8b8cc797738ddd4ef7f1aa.zip |
Check if classes/method exists before trying to call them in background jobs
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/backgroundjob/joblist.php | 4 | ||||
-rw-r--r-- | lib/private/backgroundjob/legacy/queuedjob.php | 4 | ||||
-rw-r--r-- | 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 6641097cf90..09bba53edb8 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 2bc001103b8..c5705abb467 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 d4cfa348cea..eb85a30b4be 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); + } } } |