You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Bertrand Delacretaz (JIRA)" <ji...@apache.org> on 2016/03/02 14:38:18 UTC

[jira] [Commented] (SLING-5578) Json rendering is using recursion for processing flat trees and causes stack overflows

    [ https://issues.apache.org/jira/browse/SLING-5578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15175598#comment-15175598 ] 

Bertrand Delacretaz commented on SLING-5578:
--------------------------------------------

Building the commons/json module with {{mvn clean install -P jacoco-report}} and looking at {{target/site/jacoco-merged/index.html}} shows exactly zero test coverage for that {{ResourceTraversor}} class. IMO it needs good test coverage before making any changes to it.

> Json rendering is using recursion for processing flat trees and causes stack overflows
> --------------------------------------------------------------------------------------
>
>                 Key: SLING-5578
>                 URL: https://issues.apache.org/jira/browse/SLING-5578
>             Project: Sling
>          Issue Type: Bug
>          Components: Commons
>            Reporter: Marius Petria
>         Attachments: SLING-5578.diff
>
>
> {{ResourceTraversor.collectChildren}} is unnecessarily using recursion and causes stack overflows for flat trees.
> Example: for a node with 10k direct children it adds 10k calls on the stack. This should be implemented in an iterative way or at most it should do recursion only for the tree depth.
> [1] https://github.com/apache/sling/blob/7c4a53755aed1211c9af313a3973cd2543a7bbe0/bundles/commons/json/src/main/java/org/apache/sling/commons/json/sling/ResourceTraversor.java#L84



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)