]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #5214: Successfully invalidates metadata cache in some corner cases
authorSteve Clay <steve@mrclay.org>
Mon, 11 Mar 2013 03:10:48 +0000 (23:10 -0400)
committerSteve Clay <steve@mrclay.org>
Mon, 11 Mar 2013 03:10:48 +0000 (23:10 -0400)
engine/lib/metadata.php

index 96d4460600f19818dcd6dcb11f4543e25b8f87b0..305e9918b9f51abe6c33538a0833f88fef0f78d7 100644 (file)
@@ -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;
 }
 
 /**