Hi Konrad,

I know about that subtle difference, but couldn’t we log the failure of 
instantiating the model in the adapter factories? It’s anyways not something we 
can recover from. In case of a failure of the SlingModelsUseProvider 
instantiating the model we wrap the original exception in a 
org.apache.sling.scripting.sightly.SightlyException (RuntimeException) and 
throw.

Thanks,
Radu

> On 15 Apr 2020, at 17:07, Konrad Windszus <[email protected]> wrote:
> 
> There is one important difference: The Java Use Provider uses 
> adaptTo(...)(https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/a0f0e77a30ecf3091cfa69d21ff46e0994e4e19f/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java#L160
>  
> <https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/a0f0e77a30ecf3091cfa69d21ff46e0994e4e19f/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java#L160>
>  
> <https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/a0f0e77a30ecf3091cfa69d21ff46e0994e4e19f/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java#L160
>  
> <https://github.com/apache/sling-org-apache-sling-scripting-sightly/blob/a0f0e77a30ecf3091cfa69d21ff46e0994e4e19f/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java#L160>>)
>  while the Models Use Provider uses  ModelsFactory.createModel(...) 
> (https://github.com/apache/sling-org-apache-sling-scripting-sightly-models-provider/blob/6ef6d531fc15d23744a6a60f798e36c2d368c3ab/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java#L126
>  
> <https://github.com/apache/sling-org-apache-sling-scripting-sightly-models-provider/blob/6ef6d531fc15d23744a6a60f798e36c2d368c3ab/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java#L126>
>  
> <https://github.com/apache/sling-org-apache-sling-scripting-sightly-models-provider/blob/6ef6d531fc15d23744a6a60f798e36c2d368c3ab/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java#L126
>  
> <https://github.com/apache/sling-org-apache-sling-scripting-sightly-models-provider/blob/6ef6d531fc15d23744a6a60f798e36c2d368c3ab/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java#L126>>).
>  The latter does not not catch any exceptions, so debugging issues is a lot 
> easier than relying on adaptTo which only emits some log with level WARN (or 
> even below) in case model instantiation fails (compare with [1] and [2]).
> 
> Konrad
> 
> [1] - 
> https://sling.apache.org/documentation/bundles/models.html#modelfactory-since-120
>  
> <https://sling.apache.org/documentation/bundles/models.html#modelfactory-since-120><https://sling.apache.org/documentation/bundles/models.html#modelfactory-since-120
>  
> <https://sling.apache.org/documentation/bundles/models.html#modelfactory-since-120>>
> [2] - https://issues.apache.org/jira/browse/SLING-3709 
> <https://issues.apache.org/jira/browse/SLING-3709> 
> <https://issues.apache.org/jira/browse/SLING-3709 
> <https://issues.apache.org/jira/browse/SLING-3709>>

Reply via email to