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
