From f72335fb6013345e4ca3adc97ccb3b44f5d76e91 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Tue, 3 Jan 2012 14:51:46 +0900 Subject: [PATCH] Issue #1391384 by yched: Fixed Wrong static clear on taxonomy_vocabulary_save(). --- core/modules/taxonomy/taxonomy.module | 3 ++- core/modules/taxonomy/taxonomy.test | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module index 09b67ecc5976..e083ee602d62 100644 --- a/core/modules/taxonomy/taxonomy.module +++ b/core/modules/taxonomy/taxonomy.module @@ -439,6 +439,7 @@ function taxonomy_vocabulary_save($vocabulary) { if (!empty($vocabulary->vid) && !empty($vocabulary->name)) { $status = drupal_write_record('taxonomy_vocabulary', $vocabulary, 'vid'); + taxonomy_vocabulary_static_reset(array($vocabulary->vid)); if ($vocabulary->old_machine_name != $vocabulary->machine_name) { field_attach_rename_bundle('taxonomy_term', $vocabulary->old_machine_name, $vocabulary->machine_name); } @@ -447,6 +448,7 @@ function taxonomy_vocabulary_save($vocabulary) { } elseif (empty($vocabulary->vid)) { $status = drupal_write_record('taxonomy_vocabulary', $vocabulary); + taxonomy_vocabulary_static_reset(); field_attach_create_bundle('taxonomy_term', $vocabulary->machine_name); module_invoke_all('taxonomy_vocabulary_insert', $vocabulary); module_invoke_all('entity_insert', $vocabulary, 'taxonomy_vocabulary'); @@ -454,7 +456,6 @@ function taxonomy_vocabulary_save($vocabulary) { unset($vocabulary->original); cache_clear_all(); - taxonomy_vocabulary_static_reset(array($vocabulary->vid)); return $status; } diff --git a/core/modules/taxonomy/taxonomy.test b/core/modules/taxonomy/taxonomy.test index 31b63942652c..c25a5dab1804 100644 --- a/core/modules/taxonomy/taxonomy.test +++ b/core/modules/taxonomy/taxonomy.test @@ -343,10 +343,16 @@ class TaxonomyVocabularyUnitTest extends TaxonomyWebTestCase { field_create_instance($instance); // Change the machine name. + $old_name = $this->vocabulary->machine_name; $new_name = drupal_strtolower($this->randomName()); $this->vocabulary->machine_name = $new_name; taxonomy_vocabulary_save($this->vocabulary); + // Check that entity bundles are properly updated. + $info = entity_get_info('taxonomy_term'); + $this->assertFalse(isset($info['bundles'][$old_name]), t('The old bundle name does not appear in entity_get_info().')); + $this->assertTrue(isset($info['bundles'][$new_name]), t('The new bundle name appears in entity_get_info().')); + // Check that the field instance is still attached to the vocabulary. $this->assertTrue(field_info_instance('taxonomy_term', 'field_test', $new_name), t('The bundle name was updated correctly.')); } -- GitLab