summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/base.php11
-rw-r--r--lib/public/util.php6
-rw-r--r--tests/lib/util.php2
3 files changed, 12 insertions, 7 deletions
diff --git a/lib/base.php b/lib/base.php
index 32b90cad1fa..889801f9653 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -237,7 +237,7 @@ class OC {
// Check if config is writable
$configFileWritable = is_writable($configFilePath);
if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled()
- || !$configFileWritable && \OCP\Util::needUpgrade()) {
+ || !$configFileWritable && self::checkUpgrade(false)) {
if (self::$CLI) {
echo $l->t('Cannot write into "config" directory!')."\n";
echo $l->t('This can usually be fixed by giving the webserver write access to the config directory')."\n";
@@ -678,7 +678,7 @@ class OC {
*/
public static function registerCacheHooks() {
//don't try to do this before we are properly setup
- if (\OC::$server->getSystemConfig()->getValue('installed', false) && !\OCP\Util::needUpgrade()) {
+ if (\OC::$server->getSystemConfig()->getValue('installed', false) && !self::checkUpgrade(false)) {
// NOTE: This will be replaced to use OCP
$userSession = self::$server->getUserSession();
@@ -714,7 +714,7 @@ class OC {
*/
public static function registerLogRotate() {
$systemConfig = \OC::$server->getSystemConfig();
- if ($systemConfig->getValue('installed', false) && $systemConfig->getValue('log_rotate_size', false) && !\OCP\Util::needUpgrade()) {
+ if ($systemConfig->getValue('installed', false) && $systemConfig->getValue('log_rotate_size', false) && !self::checkUpgrade(false)) {
//don't try to do this before we are properly setup
//use custom logfile path if defined, otherwise use default of owncloud.log in data directory
\OCP\BackgroundJob::registerJob('OC\Log\Rotate', $systemConfig->getValue('logfile', $systemConfig->getValue('datadirectory', OC::$SERVERROOT . '/data') . '/owncloud.log'));
@@ -807,8 +807,7 @@ class OC {
// Load minimum set of apps
if (!self::checkUpgrade(false)
- && !$systemConfig->getValue('maintenance', false)
- && !\OCP\Util::needUpgrade()) {
+ && !$systemConfig->getValue('maintenance', false)) {
// For logged-in users: Load everything
if(OC_User::isLoggedIn()) {
OC_App::loadApps();
@@ -821,7 +820,7 @@ class OC {
if (!self::$CLI and (!isset($_GET["logout"]) or ($_GET["logout"] !== 'true'))) {
try {
- if (!$systemConfig->getValue('maintenance', false) && !\OCP\Util::needUpgrade()) {
+ if (!$systemConfig->getValue('maintenance', false) && !self::checkUpgrade(false)) {
OC_App::loadApps(array('filesystem', 'logging'));
OC_App::loadApps();
}
diff --git a/lib/public/util.php b/lib/public/util.php
index 652df5192cf..1ba091d1952 100644
--- a/lib/public/util.php
+++ b/lib/public/util.php
@@ -654,6 +654,7 @@ class Util {
return \OC_Util::isDefaultExpireDateEnforced();
}
+ protected static $needUpgradeCache = null;
/**
* Checks whether the current version needs upgrade.
@@ -662,6 +663,9 @@ class Util {
* @since 7.0.0
*/
public static function needUpgrade() {
- return \OC_Util::needUpgrade(\OC::$server->getConfig());
+ if (!isset(self::$needUpgradeCache)) {
+ self::$needUpgradeCache=\OC_Util::needUpgrade(\OC::$server->getConfig());
+ }
+ return self::$needUpgradeCache;
}
}
diff --git a/tests/lib/util.php b/tests/lib/util.php
index b9b8062653e..49579b3b6bd 100644
--- a/tests/lib/util.php
+++ b/tests/lib/util.php
@@ -406,11 +406,13 @@ class Test_Util extends \Test\TestCase {
OC_Config::setValue('version', '7.0.0.0');
\OC::$server->getSession()->set('OC_Version', array(7, 0, 0, 1));
+ self::invokePrivate(new \OCP\Util, 'needUpgradeCache', array(null));
$this->assertTrue(\OCP\Util::needUpgrade());
OC_Config::setValue('version', $oldConfigVersion);
$oldSessionVersion = \OC::$server->getSession()->set('OC_Version', $oldSessionVersion);
+ self::invokePrivate(new \OCP\Util, 'needUpgradeCache', array(null));
$this->assertFalse(\OCP\Util::needUpgrade());
}