7063: endless loop in probably_alive_range

Reapply r23161 from gramps40

svn: r23162
This commit is contained in:
Vassilii Khachaturov 2013-09-18 14:49:59 +00:00
parent c4125c9299
commit 1972013601

View File

@ -338,13 +338,15 @@ class ProbablyAlive(object):
date1, date2, explain, other = descendants_too_old(person, self.AVG_GENERATION_GAP)
except RuntimeError:
raise DatabaseError(
_("Database error: %s is defined as his or her own ancestor") %
_("Database error: loop in %s's descendants") %
name_displayer.display(person))
if date1 and date2:
return (date1, date2, explain, other)
def ancestors_too_old(person, year):
LOG.debug("ancestors_too_old('{}', {})".format(
name_displayer.display(person), year) )
family_handle = person.get_main_parents_family_handle()
if family_handle:
family = self.db.get_family_from_handle(family_handle)
@ -446,9 +448,14 @@ class ProbablyAlive(object):
return (None, None, "", None)
# If there are ancestors that would be too old in the current year
# then assume our person must be dead too.
date1, date2, explain, other = ancestors_too_old (person, - self.AVG_GENERATION_GAP)
try:
# If there are ancestors that would be too old in the current year
# then assume our person must be dead too.
date1, date2, explain, other = ancestors_too_old (person, - self.AVG_GENERATION_GAP)
except RuntimeError:
raise Errors.DatabaseError(
_("Database error: loop in %s's ancestors") %
name_displayer.display(person))
if date1 and date2:
return (date1, date2, explain, other)