[ https://issues.apache.org/jira/browse/SLING-3709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14156135#comment-14156135 ]
Konrad Windszus commented on SLING-3709: ---------------------------------------- Hi [~justinedelson], thanks a lot for bringing this forward. I am only missing that the ModelFactory is also called if I try to inject one Model into the other. In that case the exception is not propagated, because the inner model is instanciated via adaptTo. > 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 > Fix For: Sling Models API 1.2.0, Sling Models Impl 1.2.0 > > > 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.3.4#6332)