[MAGNOLIA-2902] ContentUtil collectAllChildren method is not really recursive Created: 16/Oct/09 Updated: 04/Nov/15 Resolved: 04/Nov/15 |
|
| Status: | Closed |
| Project: | Magnolia |
| Component/s: | core |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Bert Leunis | Assignee: | Philipp Bärfuss |
| 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 |
|
I think I spotted a different approach for two of the collecAllChildren methods in the info.magnolia.cms.util.ContentUtil class. The methods collect nodes recursively. 1. collectAllChildren(List nodes, Content node, ContentFilter filter) In this method the first level of children is collected with the filter. For the next level of children not only the nodes that match the filter are taken into account, but the children of ALL nodes of the first level. So children that match the filter, but who's parents do not, are indeed found. 2. collectAllChildren(List nodes, Content node, ItemType[] types) In this method however, only children that have parents that match one of the ItemTypes in the array are found. For example: if I am looking for all nodes of type B and C, but when some of them have a parent of type A, they will not be found. This seems inconsistent to me, and I think the first way matches the expected functionality the best. Maybe this method should be deprecated, saying it does not work well, and create a new method, for example collectAllChildrenByItemTypes which does the better job. This way existing code will still work as expected with the deprecated method, and you are not suddenly confronted with different behaviour. |
| Comments |
| Comment by Michael Mühlebach [ 04/Nov/15 ] |
|
Given the thousands of other issues we have open that are more highly requested, we won't be able to address this issue in the foreseeable future. Instead we will focus on issues with a higher impact, and more votes. |