From e482afdd29abf91ddf348092cdbc91c0d5efcec2 Mon Sep 17 00:00:00 2001 From: Lee Rowlands Date: Mon, 24 Jul 2023 18:51:15 +1000 Subject: [PATCH] Issue #3376376: HelpSectionManager::clearCachedDefinitions breaks the update system --- core/modules/help/help.module | 14 +++++++++++++- core/modules/help/src/HelpSectionManager.php | 3 +-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/core/modules/help/help.module b/core/modules/help/help.module index 5d5e24a6b18..444cac5af62 100644 --- a/core/modules/help/help.module +++ b/core/modules/help/help.module @@ -148,7 +148,7 @@ function _help_search_update(array $extensions = []): void { return; } - if (\Drupal::service('update.update_hook_registry')->getInstalledVersion('help') >= 10100) { + if (_help_is_fully_installed()) { // Ensure that topics for extensions that have been uninstalled are removed // and that the index state variable is updated. $help_search = \Drupal::service('plugin.manager.search')->createInstance('help_search'); @@ -156,3 +156,15 @@ function _help_search_update(array $extensions = []): void { $help_search->updateIndexState(); } } + +/** + * Checks whether the help module installation is complete. + * + * @return bool + * + * @see \help_update_10200() + */ +function _help_is_fully_installed(): bool { + return \Drupal::service('update.update_hook_registry') + ->getInstalledVersion('help') >= 10200; +} diff --git a/core/modules/help/src/HelpSectionManager.php b/core/modules/help/src/HelpSectionManager.php index d8037e5082b..916091b5674 100644 --- a/core/modules/help/src/HelpSectionManager.php +++ b/core/modules/help/src/HelpSectionManager.php @@ -57,8 +57,7 @@ class HelpSectionManager extends DefaultPluginManager { */ public function clearCachedDefinitions() { parent::clearCachedDefinitions(); - $version = \Drupal::service('update.update_hook_registry')->getInstalledVersion('help'); - if ($this->searchManager && $version >= 10100) { + if ($this->searchManager && _help_is_fully_installed()) { // Rebuild the index on cache clear so that new help topics are indexed // and any changes due to help topics edits or translation changes are // picked up.