[ 
https://issues.apache.org/jira/browse/SLING-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841435#comment-13841435
 ] 

Justin Edelson commented on SLING-3267:
---------------------------------------

bq. But please take in consideration that ATM I cannot correctly implement my 
extension because of that limitation 

Assuming your extension is feature flags, I think this is a non-issue. I agree 
with Felix that ResourceDecorators are not the right way to implement those. 
But that's not really the point of this issue.

FWIW, it would make sense to do the filtering you describe for findResources() 
and queryResources() (as I said above, a NonExistingResource by definition 
cannot match a query). But it doesn't sound right to implement this as a 
general rule.

> 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
>         Attachments: SLING-3267.patch
>
>
> 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)

Reply via email to