Bug #239272 - Handle InvalidAtom exception inside
authorZac Medico <zmedico@gentoo.org>
Wed, 1 Oct 2008 21:17:32 +0000 (21:17 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 1 Oct 2008 21:17:32 +0000 (21:17 -0000)
depgraph.validate_blockers().

svn path=/main/trunk/; revision=11604

pym/_emerge/__init__.py

index 87269a135907870472a7095c1a79497be9b702ae..8a7175fd45755f507ae87246685bb9b8be3961aa 100644 (file)
@@ -5890,10 +5890,16 @@ class depgraph(object):
                                                blocker_cache[cpv] = \
                                                        blocker_cache.BlockerData(counter, blocker_atoms)
                                        if blocker_atoms:
-                                               for myatom in blocker_atoms:
-                                                       blocker = Blocker(atom=portage.dep.Atom(myatom),
-                                                               eapi=pkg.metadata["EAPI"], root=myroot)
-                                                       self._blocker_parents.add(blocker, pkg)
+                                               try:
+                                                       for atom in blocker_atoms:
+                                                               blocker = Blocker(atom=portage.dep.Atom(atom),
+                                                                       eapi=pkg.metadata["EAPI"], root=myroot)
+                                                               self._blocker_parents.add(blocker, pkg)
+                                               except portage.exception.InvalidAtom, e:
+                                                       depstr = " ".join(vardb.aux_get(pkg.cpv, dep_keys))
+                                                       show_invalid_depstring_notice(
+                                                               pkg, depstr, "Invalid Atom: %s" % (e,))
+                                                       return False
                                for cpv in stale_cache:
                                        del blocker_cache[cpv]
                                blocker_cache.flush()