Author: jeromy
Date: Fri Apr 25 03:15:55 2008
New Revision: 651562

URL: http://svn.apache.org/viewvc?rev=651562&view=rev
Log:
FreemarkerTemplateEngine no longer swallows freemarker.core.ParseException

WW-2615

Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java?rev=651562&r1=651561&r2=651562&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
 Fri Apr 25 03:15:55 2008
@@ -45,6 +45,7 @@
 
 import freemarker.template.Configuration;
 import freemarker.template.SimpleHash;
+import freemarker.core.ParseException;
 
 /**
  * Freemarker based template engine.
@@ -118,7 +119,12 @@
                     // try to load, and if it works, stop at the first one
                     template = config.getTemplate(templateName);
                     break;
+                } catch (ParseException e) {
+                    // template was found but was invalid - always report this.
+                    exception = e;
+                    break;
                 } catch (IOException e) {
+                    // FileNotFoundException is anticipated - report the first 
IOException if no template found
                     if (exception == null) {
                         exception = e;
                     }
@@ -133,11 +139,6 @@
                     LOG.error("Attempted: " + getFinalTemplateName(t));
                 }
                 LOG.error("The TemplateLoader provided by the FreeMarker 
Configuration was a: "+config.getTemplateLoader().getClass().getName());
-                if (freemarkerCaching) {
-                    LOG.error("FreeMarker Template caching is enabled 
("+StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE+"=true) and this template 
is now cached as missing (the TemplateLoader won't be asked again)");
-                } else {
-                    LOG.error("FreeMarker Template caching is disabled 
("+StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE+"=false)");
-                }
             }
             if (exception != null) {
                 throw exception;


Reply via email to