When circular dependency occurs between two or more models which either directly or indirectly depend on each other, the Alfresco server goes into an indefinite loop.
The attached models depict the following scenario:
model-B -> model-A (Model-B depends on Model-A)
model-C -> model-B (Model-C depends on Model-B)
Therefore, if we update model-A so that it depends on model-C:
model-A -> model-C (Model-A depends on Model-C)
Then there is an indirect dependency between model-A and model-C, which leads to circular dependency between the models and causes Alfresco server to stop working.
Steps to reproduce:
Upload the attached models into Repository > Data Dictionary > Models, then do the following:
- Activate model-A (Click on edit properties and select the “Model Active” checked box)
- Activate model-B
- Activate model-C
- Replace the entire content of model-A (Click on edit properties, then content ) with the following:
- click Save
Circular dependency should be detected.