Skip to content

items: fix +index crash on unmatched itemid - #2425

Merged
UlrichB22 merged 1 commit into
moinwiki:masterfrom
rikvanriel:fix-index-itemid-nonexistent
Nov 7, 2026
Merged

UlrichB22 merged 1 commit into
moinwiki:masterfrom
rikvanriel:fix-index-itemid-nonexistent

Conversation

@rikvanriel

Copy link
Copy Markdown
Contributor

items: fix +index crash on unmatched itemid

When the index view is rooted at an item addressed by something other
than a name, such as /+index/@itemid/... for an itemid that matches
nothing, the item has no NAME in its meta and thus no subitem prefixes.
build_index_query indexed subitem_prefixes[0] unconditionally and died
with IndexError instead of rendering an empty index -- unlike
get_subitem_revs, which already skips the prefix filter when the item
has no names.

Fix by returning a NullQuery matching nothing when there are no
prefixes; the view then renders an empty index as it does for a name
with no subitems.

The regression test roots an index at a nonexistent itemid and locks in
the empty result; it fails with IndexError on the old code.

When the index view is rooted at an item addressed by something other
than a name, such as /+index/@itemid/... for an itemid that matches
nothing, the item has no NAME in its meta and thus no subitem prefixes.
build_index_query indexed subitem_prefixes[0] unconditionally and died
with IndexError instead of rendering an empty index -- unlike
get_subitem_revs, which already skips the prefix filter when the item
has no names.

Fix by returning a NullQuery matching nothing when there are no
prefixes; the view then renders an empty index as it does for a name
with no subitems.

The regression test roots an index at a nonexistent itemid and locks in
the empty result; it fails with IndexError on the old code.
@UlrichB22
UlrichB22 merged commit 90d8b13 into moinwiki:master Nov 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants