[ https://issues.apache.org/jira/browse/SLING-9620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17173085#comment-17173085 ]
Robert Munteanu commented on SLING-9620: ---------------------------------------- [~angela] - thank your for the report and for the patch. I am getting close to finalising the bug fix (at least for the optimise alias resolution disabled scenario ). To make the test advance I needed to make a small change to your patch, see below: {noformat} diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/mapping/InMemoryResourceProvider.java b/src/test/java/org/apache/sling/resourceresolver/impl/mapping/InMemoryResourceProvider.java index bc288e3..28a8c1b 100644 --- a/src/test/java/org/apache/sling/resourceresolver/impl/mapping/InMemoryResourceProvider.java +++ b/src/test/java/org/apache/sling/resourceresolver/impl/mapping/InMemoryResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.sling.resourceresolver.impl.mapping; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; @@ -67,7 +66,7 @@ public class InMemoryResourceProvider extends ResourceProvider<Void> { } public void putResource(String path, String key, Object... values) { - putResource(path, Collections.singletonMap(key, Arrays.asList(values))); + putResource(path, Collections.singletonMap(key, values)); } public void putResource(String path, String key, Object value, String key2, Object value2) { {noformat} Otherwise the property conversion will not work as expected. Does that look OK to you? > 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 > Assignee: Robert Munteanu > Priority: Major > Fix For: Resource Resolver 1.6.18 > > Attachments: SLING-9620-test.patch > > > 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)