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

Felix Meschberger commented on SLING-601:
-----------------------------------------

Fixed integration tests to check for the new RecursionTooDeepException in Rev. 
738520.

> Request Inclusion Counter operating too rigid
> ---------------------------------------------
>
>                 Key: SLING-601
>                 URL: https://issues.apache.org/jira/browse/SLING-601
>             Project: Sling
>          Issue Type: Bug
>          Components: Engine
>    Affects Versions: Engine 2.0.2
>            Reporter: Felix Meschberger
>            Assignee: Felix Meschberger
>             Fix For: Engine 2.0.4
>
>
> The SlingMainServlet implements a recursion level counter to prevent 
> recursions going too deep in the checkRecursionLevel method. What this method 
> does is incrementing a counter stored as a request attribute everytime 
> RequestDispatcher.include is called (by whatever means).
> The drawback of this mechanism is, that the counter is only incremented and 
> never decremented after an inclusion returns. This in fact is not a recursion 
> level counter but a counter limiting the number of times 
> RequestDispatcher.include may be called. Another drawback of this is, that 
> the implementation is overcomplicated, because the RequestData object created 
> for each request keeps a stack of a inclusions and hence could easily 
> implement a real recursion level checker by just checking the size of the 
> stack.
> I think, we should drop the SlingMainServlet.checkRecursionLevel method 
> altogether and replace it with a new RequestData.checkAbort method which 
> throws in case any of two cases occurrs:
>    * Recursion Level is too deep (50 seems like useful)
>    * Number of includes exceeds a given number (something like 1000 or more ?)
> In addition the Exception should be made public in the Sling engine module 
> such that users of any include mechanism could handle it if need be.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to