Konrad Windszus created SLING-3709:
--------------------------------------
Summary: 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
Affects Versions: Sling Models Implementation 1.0.4, Sling Models
Implementation 1.0.6
Reporter: Konrad Windszus
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)