Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Resource Resolver 1.6.16
-
None
Description
while investigating an issue involving sling:alias, i ended up manually adding the property using JCR API calls. this involved first adding the sling:ResourceAlias and i noticed that sling:alias can be both single or multi-valued according to the node type definition:
/ Mixin node type to enable setting an alias on a resource
[sling:ResourceAlias]
mixin
// alias name(s) for the node (single or multi-value)
- sling:alias (string)
- sling:alias (string) multiple
when setting multiple values for the sling:alias property, i found that ResourceMapper.getAllMappings only returns the first alias.
looking at the implementation in ResourceMapperImpl.loadAliasIfApplicable, it seems that line 216 (String alias = ResourceResolverControl.getProperty(current, ResourceResolverImpl.PROP_ALIAS);), is the culprit as call will in any case just return a single string (it calls getProperty(res, propName, String.class)).
as a consequence consumers of the ResourceMapper.getAllMappings method will not get a complete list of all aliases available.
Attachments
Attachments
Issue Links
- is related to
-
SLING-9622 Avoid registration of auth requirements for aliases and vanity paths
- Closed
- relates to
-
SLING-10844 ResourceMapper.getMapping() returns null for empty path and unreadable root
- Closed