From 116f8b6428eee4c0748c36f536f7c2155c0ad905 Mon Sep 17 00:00:00 2001 From: webchick <webchick@24967.no-reply.drupal.org> Date: Mon, 18 Jul 2011 01:04:29 -0700 Subject: [PATCH] Issue #898634 by catch, alex_b, chx: Fixed install_drupal(): call to menu-touching functions results in SQL syntax error. --- includes/menu.inc | 10 +++++----- modules/simpletest/tests/menu.test | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/includes/menu.inc b/includes/menu.inc index f236325109e1..5582c452e87c 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -431,6 +431,11 @@ function menu_get_item($path = NULL, $router_item = NULL) { $router_items[$path] = $router_item; } if (!isset($router_items[$path])) { + // Rebuild if we know it's needed, or if the menu masks are missing which + // occurs rarely, likely due to a race condition of multiple rebuilds. + if (variable_get('menu_rebuild_needed', FALSE) || !variable_get('menu_masks', array())) { + menu_rebuild(); + } $original_map = arg(NULL, $path); // Since there is no limit to the length of $path, use a hash to keep it @@ -490,11 +495,6 @@ function menu_execute_active_handler($path = NULL, $deliver = TRUE) { // Only continue if the site status is not set. if ($page_callback_result == MENU_SITE_ONLINE) { - // Rebuild if we know it's needed, or if the menu masks are missing which - // occurs rarely, likely due to a race condition of multiple rebuilds. - if (variable_get('menu_rebuild_needed', FALSE) || !variable_get('menu_masks', array())) { - menu_rebuild(); - } if ($router_item = menu_get_item($path)) { if ($router_item['access']) { if ($router_item['include_file']) { diff --git a/modules/simpletest/tests/menu.test b/modules/simpletest/tests/menu.test index 5642fcee0e07..c0a79d4c233b 100644 --- a/modules/simpletest/tests/menu.test +++ b/modules/simpletest/tests/menu.test @@ -394,6 +394,14 @@ class MenuRouterTestCase extends DrupalWebTestCase { $this->assertEqual($link['plid'], $plid, t('%path plid @link_plid is equal to @plid.', array('%path' => $link['router_path'], '@link_plid' => $link['plid'], '@plid' => $plid))); } + /** + * Test menu_get_item() with empty ancestors. + */ + function testMenuGetItemNoAncestors() { + variable_set('menu_masks', array()); + $this->drupalGet(''); + } + /** * Test menu_set_item(). */ -- GitLab