[
https://issues.apache.org/jira/browse/SLING-4447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konrad Windszus updated SLING-4447:
-----------------------------------
Summary: Improve JavaUseProvider to not fall back to a simple Pojo
instantiation in case a Java class with @Model annotation cannot be
instantiated (was: Improve JavaUseProvider to not fall back to a simple Pojo
instanciation in case a Java class with @Model annotation cannot be
instanciated)
> Improve JavaUseProvider to not fall back to a simple Pojo instantiation in
> case a Java class with @Model annotation cannot be instantiated
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> 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
> Assignee: Konrad Windszus
> Attachments: SLING-4447-v01.patch
>
>
> 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)