diff --git a/core/includes/update.inc b/core/includes/update.inc index b49c9dc26d..a42cc1b6fd 100644 --- a/core/includes/update.inc +++ b/core/includes/update.inc @@ -9,6 +9,7 @@ */ use Drupal\Component\Graph\Graph; +use Drupal\Core\Extension\Exception\UnknownExtensionException; use Drupal\Core\Update\UpdateKernel; use Drupal\Core\Utility\Error; @@ -29,7 +30,13 @@ function update_fix_compatibility() { $save = FALSE; foreach (['module', 'theme'] as $type) { foreach ($extension_config->get($type) as $name => $weight) { - if (update_check_incompatibility($name, $type)) { + try { + $is_incompatible_or_missing = update_check_incompatibility($name, $type); + } + catch (UnknownExtensionException $exception) { + $is_incompatible_or_missing = TRUE; + } + if ($is_incompatible_or_missing) { $extension_config->clear("$type.$name"); $save = TRUE; } @@ -295,9 +302,11 @@ function update_get_update_list() { $ret = ['system' => []]; $modules = drupal_get_installed_schema_version(NULL, FALSE, TRUE); + /** @var \Drupal\Core\Extension\ExtensionList $extension_list */ + $extension_list = \Drupal::service('extension.list.module'); foreach ($modules as $module => $schema_version) { // Skip uninstalled and incompatible modules. - if ($schema_version == SCHEMA_UNINSTALLED || \Drupal::service('extension.list.module')->checkIncompatibility($module)) { + if ($schema_version == SCHEMA_UNINSTALLED || $extension_list->checkIncompatibility($module)) { continue; } // Display a requirements error if the user somehow has a schema version