SLING-6487 Prevent possible NPE (templateMode) in SlingResourceTemplateResolver
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1780482 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/SlingResourceTemplateResolver.java b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/SlingResourceTemplateResolver.java
index 790cfdc..f28087b 100644
--- a/src/main/java/org/apache/sling/scripting/thymeleaf/internal/SlingResourceTemplateResolver.java
+++ b/src/main/java/org/apache/sling/scripting/thymeleaf/internal/SlingResourceTemplateResolver.java
@@ -118,10 +118,15 @@
final ITemplateResource templateResource = new SlingTemplateResource(resource);
final boolean templateResourceExistenceVerified = false;
final TemplateMode templateMode = templateModeProvider.provideTemplateMode(resource);
- logger.debug("using template mode {} for template '{}'", templateMode, template);
- final boolean useDecoupledLogic = templateMode.isMarkup() && configuration.useDecoupledLogic();
- final ICacheEntryValidity validity = NonCacheableCacheEntryValidity.INSTANCE;
- return new TemplateResolution(templateResource, templateResourceExistenceVerified, templateMode, useDecoupledLogic, validity);
+ if (templateMode == null) {
+ logger.warn("template mode for template '{}' is null, not resolving template", template);
+ return null;
+ } else {
+ logger.debug("using template mode {} for template '{}'", templateMode, template);
+ final boolean useDecoupledLogic = templateMode.isMarkup() && configuration.useDecoupledLogic();
+ final ICacheEntryValidity validity = NonCacheableCacheEntryValidity.INSTANCE;
+ return new TemplateResolution(templateResource, templateResourceExistenceVerified, templateMode, useDecoupledLogic, validity);
+ }
} else {
logger.error("context is not an instance of SlingContext");
return null;