From: Steve Clay Date: Mon, 11 Mar 2013 03:10:48 +0000 (-0400) Subject: Fixes #5214: Successfully invalidates metadata cache in some corner cases X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=cf04d05bd44cd2ac935b6ed14c7af85e58aa7d17;p=lorea%2Felgg.git Fixes #5214: Successfully invalidates metadata cache in some corner cases --- diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 96d446060..305e9918b 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -310,11 +310,14 @@ function elgg_delete_metadata(array $options) { if (!elgg_is_valid_options_for_batch_operation($options, 'metadata')) { return false; } + $options['metastring_type'] = 'metadata'; + $result = elgg_batch_metastring_based_objects($options, 'elgg_batch_delete_callback', false); + // This moved last in case an object's constructor sets metadata. Currently the batch + // delete process has to create the entity to delete its metadata. See #5214 elgg_get_metadata_cache()->invalidateByOptions('delete', $options); - $options['metastring_type'] = 'metadata'; - return elgg_batch_metastring_based_objects($options, 'elgg_batch_delete_callback', false); + return $result; } /**