Bertrand Delacretaz created SLING-3267:
------------------------------------------

             Summary: 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)

Reply via email to