Merge pull request #9008 from nextcloud/disable-if-no-appinfo

Do not fail hard if no appinfo is returned during update
This commit is contained in:
Morris Jobke 2018-04-03 13:32:50 +02:00 committed by GitHub
commit 75cf631fd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 3 deletions

View File

@ -358,7 +358,7 @@ class AppManager implements IAppManager {
*
* @param bool $path
* @param null $lang
* @return array app info
* @return array|null app info
*/
public function getAppInfo(string $appId, bool $path = false, $lang = null) {
if ($path) {
@ -411,7 +411,9 @@ class AppManager implements IAppManager {
$incompatibleApps = array();
foreach ($apps as $appId) {
$info = $this->getAppInfo($appId);
if (!\OC_App::isAppCompatible($version, $info)) {
if ($info === null) {
$incompatibleApps[] = ['id' => $appId];
} else if (!\OC_App::isAppCompatible($version, $info)) {
$incompatibleApps[] = $info;
}
}

View File

@ -391,7 +391,7 @@ class Updater extends BasicEmitter {
foreach ($apps as $app) {
// check if the app is compatible with this version of ownCloud
$info = OC_App::getAppInfo($app);
if(!OC_App::isAppCompatible($version, $info)) {
if($info === null || !OC_App::isAppCompatible($version, $info)) {
if ($appManager->isShipped($app)) {
throw new \UnexpectedValueException('The files of the app "' . $app . '" were not correctly replaced before running the update');
}