The GitHub Actions job "Build" on jackrabbit-oak.git/issue/OAK-12365 has failed.
Run started by GitHub user bhabegger (triggered by fabriziofortino).

Head commit for run:
3d171a189b7f22942f39689a77f00fab2076b8ed / Benjamin Habegger 
<[email protected]>
OAK-12365: Delete stale index document when a node's last aggregated property 
is removed

FulltextIndexEditor.addOrUpdate() calls makeDocument() on every commit
touching a node. When the node's indexing rule still matches but its last
indexable content came from a relative/aggregated property that just got
removed, makeDocument() returns null (nothing to index) and addOrUpdate()
previously did nothing further, leaving the old document in the index
forever.

A direct (non-relative) property removal on the same node was already
handled correctly: FulltextDocumentMaker.removeProperties() forces
dirty=true in that case, so a rebuilt document is written instead of null.
The gap is specifically the aggregated-content case, where the root's own
propertiesModified list stays empty.

Fix: in addOrUpdate(), when makeDocument() returns null on an update to a
previously-existing node, delete the stale document. Guarded by feature
toggle FT_OAK-12365 (enabled by default), following this codebase's
convention for bug-fix toggles.

Covers both the OAK-12244 type-tracking-enabled path and the legacy
(toggle-disabled) path, since both funnel through addOrUpdate().

Report URL: https://github.com/apache/jackrabbit-oak/actions/runs/32826218559

With regards,
GitHub Actions via GitBox

Reply via email to