Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
Models Impl 1.4.12
-
None
-
None
Description
Currently any InvocationTargetException is stripped in https://github.com/apache/sling-org-apache-sling-models-impl/blob/80b1dea63615ea5be8252241d6147bce9552fa8e/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java#L756 as it is replaced by the more generic PostConstruct exception stripping the the reflection part of the call stack.
That may lead to exceptions like
Caused by: org.apache.sling.scripting.sightly.SightlyException: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: Identifier <MyModel> cannot be correctly instantiated by the Use API at com.adobe.cq.sightly.WCMScriptHelper.includeScript(WCMScriptHelper.java:227) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0] at com.adobe.cq.sightly.internal.extensions.IncludeExtension.call(IncludeExtension.java:72) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0] at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0] at org.apache.sling.scripting.sightly.apps.bruker.components.structure.header.header_html.render(header_html.java:41) at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0] at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0] at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.0.56] at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.0.56] at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.0.56] ... 198 common frames omitted Caused by: org.apache.sling.api.SlingException: Cannot get DefaultSlingScript: Identifier <MyModel> cannot be correctly instantiated by the Use API at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:510) [org.apache.sling.scripting.core:2.0.56] at com.adobe.cq.sightly.WCMScriptHelper.includeScript(WCMScriptHelper.java:222) [com.adobe.cq.sightly.cq-wcm-sightly-extension:1.6.0] ... 206 common frames omitted Caused by: org.apache.sling.scripting.sightly.SightlyException: Identifier <MyModel> cannot be correctly instantiated by the Use API at org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension.call(UseRuntimeExtension.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0] at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:77) [org.apache.sling.scripting.sightly:1.1.2.1_4_0] at org.apache.sling.scripting.sightly.apps.bruker.components.structure.header.content_html.render(content_html.java:43) at org.apache.sling.scripting.sightly.render.RenderUnit.render(RenderUnit.java:50) [org.apache.sling.scripting.sightly.runtime:1.1.0.1_4_0] at org.apache.sling.scripting.sightly.impl.engine.SightlyCompiledScript.eval(SightlyCompiledScript.java:60) [org.apache.sling.scripting.sightly:1.1.2.1_4_0] at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:386) [org.apache.sling.scripting.core:2.0.56] at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) [org.apache.sling.scripting.core:2.0.56] at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491) [org.apache.sling.scripting.core:2.0.56] ... 207 common frames omitted Caused by: org.apache.sling.models.factory.PostConstructException: Post-construct method has thrown an exception for model class <MyModel> at org.apache.sling.models.impl.ModelAdapterFactory.createObject(ModelAdapterFactory.java:774) [org.apache.sling.models.impl:1.4.10] at org.apache.sling.models.impl.ModelAdapterFactory.internalCreateModel(ModelAdapterFactory.java:448) [org.apache.sling.models.impl:1.4.10] at org.apache.sling.models.impl.ModelAdapterFactory.createModel(ModelAdapterFactory.java:314) [org.apache.sling.models.impl:1.4.10] at org.apache.sling.scripting.sightly.models.impl.SlingModelsUseProvider.provide(SlingModelsUseProvider.java:126) [org.apache.sling.scripting.sightly.models.provider:1.0.8] at org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension.call(UseRuntimeExtension.java:72) [org.apache.sling.scripting.sightly:1.1.2.1_4_0] ... 214 common frames omitted Caused by: java.lang.NullPointerException: null
In that case it would be helpful to see the stack traces in between to have a better idea, where the NPE is triggered.
Attachments
Issue Links
- is related to
-
SLING-5389 Sling Models: Do not swallow PostConstruct exceptions
- Closed
-
SLING-4767 Optional sub models are logged as warn if they cannot be adapted
- Closed