[
https://issues.apache.org/jira/browse/SLING-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841259#comment-13841259
]
Bertrand Delacretaz commented on SLING-3267:
--------------------------------------------
My http://svn.apache.org/r1548491 changes just clarify the current behavior -
no changes under src/main, only new tests, so there's no reason to remove them.
Also, IgnoredResourcesTest demonstrates that ResourceDecorator returning null
does cause null Resources to appear in places, so if we clarify that returning
null means don't decorate we'll need to fix that.
> ResourceDecorator returning null should cause Resources to be ignored
> ---------------------------------------------------------------------
>
> Key: SLING-3267
> URL: https://issues.apache.org/jira/browse/SLING-3267
> Project: Sling
> Issue Type: Improvement
> Components: ResourceResolver
> Affects Versions: Resource Resolver 1.0.6
> Reporter: Bertrand Delacretaz
> Assignee: Bertrand Delacretaz
> Priority: Minor
>
> The ResourceDecorator API's decorate(...) method javadocs currently specify
> that it can return null, but I don't think that's supported in a consistent
> way in the resource resolving process - returning null causes the resource
> resolver to supply a null Resource in some cases, which will probably cause
> NPEs downstream.
> The javadocs also say "If the service does not want to decorate the resource,
> it should return the original resource" which is consistent with how the
> resource resolver currently operates: returning null is clearly not a way of
> saying "do not decorate this resource".
> As we're discussing feature flags in Sling, we could clarify this behavior by
> specifying that a ResourceDecorator returning null causes the resource to be
> considered as non-existent, and making the corresponding (rather small)
> changes in the resource resolver code.
> As every Resource needs to go through the available ResourceDecorators, this
> is a simple way of making resources hideable based on feature flags. One then
> just needs to implement a ResourceDecorator that returns null when a Resource
> must be ignored.
--
This message was sent by Atlassian JIRA
(v6.1#6144)