You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Bertrand Delacretaz (JIRA)" <ji...@apache.org> on 2013/12/09 14:22:08 UTC

[jira] [Resolved] (SLING-3267) ResourceDecorator returning null should cause Resources to be ignored

     [ https://issues.apache.org/jira/browse/SLING-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bertrand Delacretaz resolved SLING-3267.
----------------------------------------

    Resolution: Won't Fix

Resolving won't fix as it looks like we have consensus to do things differently.

I have created SLING-3269 to fix the ResourceDecorator.decorate() null handling.

Let's discuss on list if and how we want to implement the "feature flags hide resources" use case.

> 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.4#6159)