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

Radu Cotescu commented on SLING-4447:
-------------------------------------

What about providing a {{UseProvider}} for Sightly in Sling Models, and make 
Sightly an optional dependency for Sling Models? :)

> Improve JavaUseProvider to not fall back to a simple Pojo instanciation in 
> case a Java class with @Model annotation cannot be instanciated
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SLING-4447
>                 URL: https://issues.apache.org/jira/browse/SLING-4447
>             Project: Sling
>          Issue Type: Improvement
>          Components: Scripting
>    Affects Versions: Scripting Sightly Engine 1.0.0
>            Reporter: Konrad Windszus
>
> Currently in case a Java class is a Sling Model (i.e. has the Model 
> annotation) and cannot be instanciated (e.g. required injections not 
> possible) Sightly falls back to instanciate those as simple Pojos.
> This is never good, since a lot of NullPointerException happen then, because 
> all injections have not been performed then.
> Therefore in the following code should be used instead 
> {code}
> if (modelFactory.isModelClass(resource, cls)) {
>   if (modelFactory.canCreateFromAdaptable(resource, cls)) {
>     obj = modelFactory.createModel(resource, cls);
>   } else if (modelFactory.canCreateFromAdaptable(request, cls)) {
>     obj = modelFactory.createModel(request, cls);
>   } else {
>     throw new IllegalStateException("Could not adapt the given Sling Model 
> from neither resource nor request: " + cls);
>   }
> }
> {code}
> That way, exceptions would be propagated in case a Sling model cannot be 
> instanciated and developers more easily see why the Sling Model does not work 
> (instead of running into NullPointerExceptions in their model because it was 
> instanciated as simple 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to