# HG changeset patch # User Ludovic Chabant # Date 1472701709 25200 # Node ID 661f7ba15762a1ae31e9bce3250c87d942ed0b94 # Parent 6d8fe8e93a917ad7a60068bf0bb639f6476e55a8 bug: Fix possible crash with overlapping pages. Code was incorrectly refactored from a previous version. diff -r 6d8fe8e93a91 -r 661f7ba15762 piecrust/generation/base.py --- a/piecrust/generation/base.py Wed Aug 17 22:01:26 2016 -0700 +++ b/piecrust/generation/base.py Wed Aug 31 20:48:29 2016 -0700 @@ -1,3 +1,4 @@ +import logging from werkzeug.utils import cached_property from piecrust.baking.records import BakeRecordEntry from piecrust.baking.worker import save_factory, JOB_BAKE @@ -6,6 +7,9 @@ from piecrust.sources.pageref import PageRef +logger = logging.getLogger(__name__) + + class InvalidRecordExtraKey(Exception): pass @@ -61,13 +65,13 @@ if override_entry is not None: override_source = self.app.getSource( override_entry.source_name) - if override_source.realm == fac.source.realm: - cur_entry.errors.append( + if override_source.realm == page_fac.source.realm: + entry.errors.append( "Page '%s' maps to URL '%s' but is overriden " "by page '%s'." % - (fac.ref_spec, uri, override_entry.path)) - logger.error(cur_entry.errors[-1]) - cur_entry.flags |= BakeRecordEntry.FLAG_OVERRIDEN + (page_fac.ref_spec, uri, override_entry.path)) + logger.error(entry.errors[-1]) + entry.flags |= BakeRecordEntry.FLAG_OVERRIDEN return route_index = self._app.routes.index(route) diff -r 6d8fe8e93a91 -r 661f7ba15762 piecrust/generation/taxonomy.py --- a/piecrust/generation/taxonomy.py Wed Aug 17 22:01:26 2016 -0700 +++ b/piecrust/generation/taxonomy.py Wed Aug 31 20:48:29 2016 -0700 @@ -8,7 +8,6 @@ PaginationFilter, SettingFilterClause, page_value_accessor) from piecrust.generation.base import PageGenerator, InvalidRecordExtraKey -from piecrust.sources.pageref import PageRef, PageNotFoundError logger = logging.getLogger(__name__)