From d6dc88cbc1ebc4cfba6faf39edf6eebd41873029 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 30 Dec 2013 17:00:50 +0100 Subject: [PATCH] Avoided leaking state on exceptions in populate_models(). --- django/apps/registry.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/django/apps/registry.py b/django/apps/registry.py index 5dbb4696d7..1bb00f37f7 100644 --- a/django/apps/registry.py +++ b/django/apps/registry.py @@ -125,11 +125,12 @@ class Apps(object): self._postponed.append(app_config) if outermost: - for app_config in self._postponed: - all_models = self.all_models[app_config.label] - app_config.import_models(all_models) - - del self._postponed + try: + for app_config in self._postponed: + all_models = self.all_models[app_config.label] + app_config.import_models(all_models) + finally: + del self._postponed self.clear_cache() self._models_loaded = True