[MAGNOLIA-6468] AbstractNodeTypeRegistrationTask fails if the nodeType is already registered and has oder nodeTypes depending on it transitively Created: 21/Dec/15  Updated: 19/May/22  Resolved: 19/May/22

Status: Closed
Project: Magnolia
Component/s: core
Affects Version/s: 5.3.12
Fix Version/s: None

Type: Bug Priority: Neutral
Reporter: Bence Vass Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

AbstractNodeTypeRegistrationTask method registerNodeTypes fails, if the nodeType exists and other nodeTypes already depend on it.

A list of dependentNodeTypeNames is gathered, but not recursively, so those transitively dependent nodeTypes are not unregistered and the task fails.

An example is the DataModuleVersionHandler, which re-registers the nodeTypes (in the wrong order imo):

                        types.add(NodeTypeTemplateUtil.createNodeType(nodeTypeManager, "dataItemNode", new String[] { "dataItemBase", Activatable.NAME }, false, true, null, true));
                        types.add(NodeTypeTemplateUtil.createNodeType(nodeTypeManager, "dataItem", new String[] { "dataItemBase", Activatable.NAME, Versionable.NAME }, false, true, null, true));
                        types.add(NodeTypeTemplateUtil.createNodeType(nodeTypeManager, "dataFolder", new String[] { "dataBase", Activatable.NAME }, false, true, null, true));
                        types.add(NodeTypeTemplateUtil.createNodeType(nodeTypeManager, "dataItemBase", new String[] { "dataBase" }, false, true, null, true));
                        types.add(NodeTypeTemplateUtil.createSimpleNodeType(nodeTypeManager, "dataBase", Arrays.asList("mix:referenceable", "nt:hierarchyNode", Created.NAME, LastModified.NAME)));

This task fails, because dataBase can't be unregistered, as its dependant nodeType dataItemBase is needed for dataItem.



 Comments   
Comment by Roman Kovařík [ 19/May/22 ]

Hello,

This ticket is now marked as closed due to one of the following reasons:

  • A long period of inactivity
  • Uses an old or Beta version of an application, module, or framework that we no longer support
  • The issue is no longer reproducible or has been fixed in later versions

If you are still facing a problem or consider this issue still relevant, please feel free to re-open the ticket and we will reach out to you.

Thank you,
The Magnolia Team

Generated at Mon Feb 12 04:14:48 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.