[
https://issues.apache.org/jira/browse/SLING-10844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17575581#comment-17575581
]
Carsten Ziegeler commented on SLING-10844:
------------------------------------------
If the incoming path is the empty string (which is actually an invalid value,
but as we supported it in the past, we need to stick with it), then the
resource that is delivered by the resource resolver is the root resource or
null if that resource is not readable for the current user.
So I think, all we have to do is change the check in
https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java#L166
to
{noformat}
// 7. final effort to make sure we have at least one mapped path
if ( mappings.isEmpty() ) {
mappings.add(nonDecoratedResource != null ?
nonDecoratedResource.getPath() : "/");
}
{noformat}
> ResourceMapper.getMapping() returns null for empty path
> -------------------------------------------------------
>
> Key: SLING-10844
> URL: https://issues.apache.org/jira/browse/SLING-10844
> Project: Sling
> Issue Type: Bug
> Components: ResourceResolver
> Affects Versions: Resource Resolver 1.7.0
> Reporter: Mohit Arora
> Assignee: Robert Munteanu
> Priority: Major
> Time Spent: 3h
> Remaining Estimate: 0h
>
> After the bug fix for SLING-9620, the behavior for
> ResourceMapper.getAllMappings() was changed such that the mappings list
> remains empty if the resourcePath provided is an empty string. Prior to this
> bug fix, the mappings list contained a single entry for empty path.
> Since mappings list is empty, [ResourceMapper.getMapping() returns
> null|https://github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/mapping/ResourceMapperImpl.java#L74-L75].
> The [javadoc of
> ResourceMapper.getMapping()|https://github.com/apache/sling-org-apache-sling-api/blob/master/src/main/java/org/apache/sling/api/resource/mapping/ResourceMapper.java#L67]
> API mentions that it will return a non null value if the resourcepath is not
> null.
> We need to decide on the expected behavior here. If mappings list should not
> be updated in case of empty resourcePath then the API annotation will have to
> be changed and it can potentially be a backwards incompatible issue in theory
> as the consumers of the API may not have added a null check to the return
> value.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)