From 72eb5a4ba6f9f4802abbd82380a83c19ebd60483 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 18 Aug 2012 12:18:58 +0200 Subject: [PATCH] return null if no template could be found --- .../template/FreemarkerTemplateEngine.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java b/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java index 9f23f38f96..857623abaa 100644 --- a/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java +++ b/scm-webapp/src/main/java/sonia/scm/template/FreemarkerTemplateEngine.java @@ -30,6 +30,7 @@ */ + package sonia.scm.template; //~--- non-JDK imports -------------------------------------------------------- @@ -43,8 +44,12 @@ import freemarker.cache.WebappTemplateLoader; import freemarker.template.Configuration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + //~--- JDK imports ------------------------------------------------------------ +import java.io.FileNotFoundException; import java.io.IOException; import java.util.Locale; @@ -68,6 +73,12 @@ public class FreemarkerTemplateEngine implements TemplateEngine public static final TemplateType TYPE = new TemplateType("freemarker", "Freemarker", "ftl", "freemarker"); + /** + * the logger for FreemarkerTemplateEngine + */ + private static final Logger logger = + LoggerFactory.getLogger(FreemarkerTemplateEngine.class); + //~--- constructors --------------------------------------------------------- /** @@ -110,13 +121,28 @@ public class FreemarkerTemplateEngine implements TemplateEngine public FreemarkerTemplate getTemplate(String templatePath) throws IOException { FreemarkerTemplate template = null; - freemarker.template.Template t = configuration.getTemplate(templatePath, - ENCODING); + freemarker.template.Template t = null; + + try + { + t = configuration.getTemplate(templatePath, ENCODING); + } + catch (FileNotFoundException ex) + { + if (logger.isTraceEnabled()) + { + logger.trace("could not find template ".concat(templatePath), ex); + } + } if (t != null) { template = new FreemarkerTemplate(t); } + else if (logger.isWarnEnabled()) + { + logger.warn("could not find freemarker template at {}", templatePath); + } return template; }