[
https://issues.apache.org/jira/browse/SLING-12384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Reschke closed SLING-12384.
----------------------------------
> ResourceResolver: paged query for sling:alias will miss entries
> ---------------------------------------------------------------
>
> Key: SLING-12384
> URL: https://issues.apache.org/jira/browse/SLING-12384
> Project: Sling
> Issue Type: Bug
> Affects Versions: Resource Resolver 1.11.6
> Reporter: Julian Reschke
> Assignee: Julian Reschke
> Priority: Major
> Fix For: Resource Resolver 1.12.0
>
>
> Initially I thought that the issue just applies to empty alias values,
> because the paged query will always skip them, due to the first query being
> "{{{}first(sling:alias) > ''{}}}".
> Closer inspection showed that the pageing logic was flawed:
> * read values until pageSize is exceeded *and* a new key value _x_ is reached
> * start a new query with condition {{> x}}
> This worked mostly ok with vanity paths, where the search key
> "first(sling:vanityPath)" almost always changes (having the same value for
> many resources will only lead to one working vanity path, because the same
> path cannot map to multiple resources).
> For aliases the situations is different, because their value is locally
> scoped to the collection the aliased resource appears in. So we could have
> 10000 resources with the _same_ set of aliases (think translations or
> shortcuts), and in cases like these, the page size (right now 2000) would be
> exceeded.
> The proposed change is:
> * always use ">=" so the initial page contains the empty-valued properties
> as well
> * when page size is exceeded and a new key _y_ is found, do not include the
> last result, but execute a new query right away (with the proper condition so
> that all resources with "{{first(sling:alias) >= y}}" are returned)
> * also add more diagnostics, which may help to diagnose pacge size / query
> limit issues early
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)