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

Justin Edelson commented on SLING-3709:
---------------------------------------

My comments:
* Exports should not be in the spi package. It should be in a separate package 
either just org.apache.sling.models or org.apache.sling.models.factory.
* Exceptions should not be thrown at all during the adaptTo code path. This is 
just wasteful. In fact, the adaptTo code path should not be changed to the 
extent possible.
* I don't understand the use of IllegalStateException. According to the 
JavaDocs, this  "Signals that a method has been invoked at an illegal or 
inappropriate time. In other words, the Java environment or Java application is 
not in an appropriate state for the requested operation." That doesn't appear 
appropriate for how it is used here.

In general, this would appear to have very limited value at this point. All you 
can see is whether the class had the right annotation. Everything else is 
wrapped in a generic ValidationException. I assume that is going to be changed 
to provide more fine grained information.

> Sling Models: Allow caller to deal with exceptions
> --------------------------------------------------
>
>                 Key: SLING-3709
>                 URL: https://issues.apache.org/jira/browse/SLING-3709
>             Project: Sling
>          Issue Type: Improvement
>          Components: Extensions
>    Affects Versions: Sling Models Implementation 1.0.4, Sling Models 
> Implementation 1.0.6
>            Reporter: Konrad Windszus
>              Labels: models
>
> Currently due to the specification of the adaptTo-method to return null if 
> adaptation is not possible, the caller is not notified about any exceptions 
> (because they are caught within the ModelAdapterFactory).
> This is e.g. necessary to deal with validation exceptions properly (i.e. 
> required field injection not possible).  The problem was also discussed 
> briefly in 
> http://apache-sling.73963.n3.nabble.com/Silng-Models-Validation-Framework-td4033411.html.
> All exceptions either being thrown by the 
> @PostConstruct method or caused by the field/method injection are not 
> propagated but basically swallowed by Sling Models.
> It would be great to be able to catch those exceptions either in the view or 
> in a servlet filter. I think it should be possible to throw unchecked 
> exceptions in the ModelAdapterFactory.getFactory() method if it is requested 
> (i.e. through a global OSGi configuration flag for Sling Models).
> WDYT?
> Would you accept such a patch or do you think this breaks the API (also 
> compare with 
> https://issues.apache.org/jira/browse/SLING-2712?focusedCommentId=13561516&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13561516).
> If it does not work through the adaptTo, SlingModels should provide an 
> alternative way of instanciating models (and propagating exceptions), 
> although this is kind of tricky, because it internally relies on adaptTo as 
> well (e.g. in 
> https://github.com/apache/sling/blob/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java#L647)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to