diff options
Diffstat (limited to 'pym/portage/cache/metadata.py')
-rw-r--r-- | pym/portage/cache/metadata.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pym/portage/cache/metadata.py b/pym/portage/cache/metadata.py index 86717e6c5..b602f62bc 100644 --- a/pym/portage/cache/metadata.py +++ b/pym/portage/cache/metadata.py @@ -4,7 +4,7 @@ # $Id$ import os, re, stat, types -from portage.cache import flat_hash +from portage.cache import cache_errors, flat_hash import portage.eclass_cache from portage.cache.template import reconstruct_eclasses from portage.cache.mappings import ProtectedDict @@ -55,7 +55,12 @@ class database(flat_hash.database): if "_eclasses_" not in d: if "INHERITED" in d: - d["_eclasses_"] = self.ec.get_eclass_data(d["INHERITED"].split(), from_master_only=True) + try: + d["_eclasses_"] = self.ec.get_eclass_data( + d["INHERITED"].split(), from_master_only=True) + except KeyError, e: + # INHERITED contains a non-existent eclass. + raise cache_errors.CacheCorruption(cpv, e) del d["INHERITED"] else: d["_eclasses_"] = {} |