You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Angela Schreiber (Jira)" <ji...@apache.org> on 2020/07/30 14:22:00 UTC
[jira] [Created] (SLING-9620) ResourceMapperImpl.getAllMappings
does not respect multi-valued sling:alias
Angela Schreiber created SLING-9620:
---------------------------------------
Summary: ResourceMapperImpl.getAllMappings does not respect multi-valued sling:alias
Key: SLING-9620
URL: https://issues.apache.org/jira/browse/SLING-9620
Project: Sling
Issue Type: Bug
Components: ResourceResolver
Affects Versions: Resource Resolver 1.6.16
Reporter: Angela Schreiber
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:
{code}
/ 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
{code}
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.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)