Index: modules/book/book.module =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.module,v retrieving revision 1.494 diff -u -p -r1.494 book.module --- modules/book/book.module 27 May 2009 18:33:55 -0000 1.494 +++ modules/book/book.module 3 Jun 2009 03:33:46 -0000 @@ -294,7 +294,7 @@ function theme_book_title_link($link) { * the options for a form select. */ function book_get_books() { - static $all_books; + $all_books = &drupal_static(__FUNCTION__); if (!isset($all_books)) { $all_books = array(); @@ -580,7 +580,7 @@ function book_update_bid($book_link) { * immediately after it in the array. */ function book_get_flat_menu($book_link) { - static $flat = array(); + $flat = &drupal_static(__FUNCTION__, array()); if (!isset($flat[$book_link['mlid']])) { // Call menu_tree_all_data() to take advantage of the menu system's caching. @@ -1144,7 +1144,7 @@ function book_link_load($mlid) { * An subtree of menu links in an array, in the order they should be rendered. */ function book_menu_subtree_data($item) { - static $tree = array(); + $tree = &drupal_static(__FUNCTION__, array()); // Generate a cache ID (cid) specific for this $menu_name and $item. $cid = 'links:' . $item['menu_name'] . ':subtree-cid:' . $item['mlid']; Index: modules/book/book.test =================================================================== RCS file: /cvs/drupal/drupal/modules/book/book.test,v retrieving revision 1.9 diff -u -p -r1.9 book.test --- modules/book/book.test 25 Apr 2009 23:01:43 -0000 1.9 +++ modules/book/book.test 3 Jun 2009 03:33:46 -0000 @@ -95,6 +95,8 @@ class BookTestCase extends DrupalWebTest * The nodes that should be displayed in the breadcrumb. */ function checkBookNode($node, $nodes, $previous = FALSE, $up = FALSE, $next = FALSE, array $breadcrumb) { + // $number does not use drupal_static as it should not be reset + // since it uniquely identifies each call to checkBookNode(). static $number = 0; $this->drupalGet('node/' . $node->nid); @@ -166,6 +168,8 @@ class BookTestCase extends DrupalWebTest * @param integer $parent Parent book reference id. */ function createBookNode($book_nid, $parent = NULL) { + // $number does not use drupal_static as it should not be reset + // since it uniquely identifies each call to createBookNode(). static $number = 0; // Used to ensure that when sorted nodes stay in same order. $edit = array();