Details
-
Improvement
-
Status: New
-
High
-
Resolution: Unresolved
-
None
-
None
-
None
-
Pulsar
-
!Pulsar - Misc brXM
Description
Currently, if a content path is changed while auto-export is running, DefinitionMergeService attempts to find the immediate parent of the changed path in existing YAML data, either as config or content. It is possible that this parent node is defined nowhere, since content can be created anywhere in the repository and the ancestors weren't necessarily exported. In this situation, auto-export currently throws an exception and fails. This is likely to occur if you work as a developer with a database backup from a production or staging system, and it can block usage of auto-export with no obvious recourse for fixing the problem. (The actual fix is to use the autoexport:excluded property to prevent the entire missing portion of the JCR from being considered for auto-export.)
Instead of failing, auto-export should do one of:
- Issue a WARN level log statement, ignore that content path, and continue processing other paths. Perhaps this should include the recommendation to use autoexport:excluded to prevent it from recurring.
- Export the necessary content definitions of ancestors to enable exporting the changed path.
Since option 2 could lead to a pathological case of exporting a very large amount of data from a production database, I recommend the simpler option 1.