On 22 Nov 2010, at 10:15, Felix Meschberger wrote:

>>> 
>>> In terms of your larger point, ResourceProvider.listChildren() returns
>>> an Iterator and AuthorizableResourceProvider.listChildren() return value
>>> simply wraps the result of getPrincipals(), so in and of itself, this
>>> shouldn't exhaust memory.
>> 
>> Agreed, and it looks like the iterator is not used, so the only expense is 
>> executing the query which provided the lucene/jackrabbit batch size is small 
>> and the result set is dense from an ACL point of view there should not be a 
>> problem. However if the result set is sparse, and the first entry is 
>> retrieved from the iterator that will cause many items to enter the shared 
>> item cache and block all other operations that need the persistence manager.
> 
> But how can we solve this in Sling ? This sounds like a Jackrabbit
> problem ?

your right, the root cause is in JR and we cant fix that in Sling. I am sure 
the JR team are well aware of the situation. I think I was suggesting avoiding 
loading the iterator in the first place.

Ian



> 
> Regards
> Felix

Reply via email to