Repository: incubator-freemarker Updated Branches: refs/heads/3 53c2fbac8 -> 0a60fc618
Changed the default of templateExceptionHandler (template_exception_hander) to TemplateExceptionHandler.RETHROW_HANDLER. Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/0a60fc61 Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/0a60fc61 Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/0a60fc61 Branch: refs/heads/3 Commit: 0a60fc618769efb2af073a97f39fef3e5c45648e Parents: 53c2fba Author: ddekany <[email protected]> Authored: Mon Jun 12 23:13:05 2017 +0200 Committer: ddekany <[email protected]> Committed: Mon Jun 12 23:13:05 2017 +0200 ---------------------------------------------------------------------- FM3-CHANGE-LOG.txt | 3 ++- .../apache/freemarker/core/ConfigurationTest.java | 8 ++++---- .../freemarker/core/ObjectBuilderSettingsTest.java | 4 ++-- .../org/apache/freemarker/core/Configuration.java | 17 +++++------------ .../freemarker/core/ProcessingConfiguration.java | 8 +++++--- .../manual/examples/GettingStartedExample.java | 2 -- .../servlet/jsp/RealServletContainertTest.java | 4 ++-- 7 files changed, 20 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/FM3-CHANGE-LOG.txt ---------------------------------------------------------------------- diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt index 1970caa..a8f3089 100644 --- a/FM3-CHANGE-LOG.txt +++ b/FM3-CHANGE-LOG.txt @@ -266,7 +266,8 @@ the FreeMarer 3 changelog here: Using the platform default charset was proven to be fragile in practice, like applications could break when moved to another server if the application was unwillingly relying on the default. - - Changed the default of logTemplateExceptions to false. + - Changed the default of templateExceptionHandler (template_exception_hander) to + TemplateExceptionHandler.RETHROW_HANDLER - Removed the logTemplateExceptions (log_template_exceptions) setting. FreeMarker now behaves as if it was false. When a FreeMarker method throws an exception, the caller is responsible for either logging it or letting it bubble up. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java ---------------------------------------------------------------------- diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java index 395e192..d92ced4 100644 --- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java +++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ConfigurationTest.java @@ -130,16 +130,16 @@ public class ConfigurationTest { } assertFalse(cfgB.isTemplateExceptionHandlerSet()); - assertSame(TemplateExceptionHandler.DEBUG_HANDLER, cfgB.getTemplateExceptionHandler()); + assertSame(TemplateExceptionHandler.RETHROW_HANDLER, cfgB.getTemplateExceptionHandler()); // - cfgB.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); + cfgB.setTemplateExceptionHandler(TemplateExceptionHandler.DEBUG_HANDLER); assertTrue(cfgB.isTemplateExceptionHandlerSet()); - assertSame(TemplateExceptionHandler.RETHROW_HANDLER, cfgB.getTemplateExceptionHandler()); + assertSame(TemplateExceptionHandler.DEBUG_HANDLER, cfgB.getTemplateExceptionHandler()); // for (int i = 0; i < 2; i++) { cfgB.unsetTemplateExceptionHandler(); assertFalse(cfgB.isTemplateExceptionHandlerSet()); - assertSame(TemplateExceptionHandler.DEBUG_HANDLER, cfgB.getTemplateExceptionHandler()); + assertSame(TemplateExceptionHandler.RETHROW_HANDLER, cfgB.getTemplateExceptionHandler()); } assertFalse(cfgB.isTemplateLoaderSet()); http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/freemarker-core-test/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java ---------------------------------------------------------------------- diff --git a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java index 24fe972..2f2d307 100644 --- a/freemarker-core-test/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java +++ b/freemarker-core-test/src/test/java/org/apache/freemarker/core/ObjectBuilderSettingsTest.java @@ -411,11 +411,11 @@ public class ObjectBuilderSettingsTest { Properties props = new Properties(); props.setProperty(Configuration.ExtendableBuilder.OBJECT_WRAPPER_KEY, "Default"); props.setProperty(MutableProcessingConfiguration.ARITHMETIC_ENGINE_KEY, "bigdecimal"); - props.setProperty(MutableProcessingConfiguration.TEMPLATE_EXCEPTION_HANDLER_KEY, "rethrow"); + props.setProperty(MutableProcessingConfiguration.TEMPLATE_EXCEPTION_HANDLER_KEY, "debug"); cfgB.setSettings(props); assertEquals(DefaultObjectWrapper.class, cfgB.getObjectWrapper().getClass()); assertSame(BigDecimalArithmeticEngine.INSTANCE, cfgB.getArithmeticEngine()); - assertSame(TemplateExceptionHandler.RETHROW_HANDLER, cfgB.getTemplateExceptionHandler()); + assertSame(TemplateExceptionHandler.DEBUG_HANDLER, cfgB.getTemplateExceptionHandler()); assertEquals(Configuration.VERSION_3_0_0, ((DefaultObjectWrapper) cfgB.getObjectWrapper()).getIncompatibleImprovements()); } http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java ---------------------------------------------------------------------- diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java index d00d0d7..5f86a8a 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/Configuration.java @@ -127,17 +127,10 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; * {@link Template Template} myTemplate = cfg.{@link #getTemplate(String) getTemplate}("myTemplate.html"); * myTemplate.{@link Template#process(Object, java.io.Writer) process}(dataModel, out);</pre> * - * <p>A couple of settings that you should not leave on its default value are: - * <ul> - * <li>{@link #getTemplateLoader templateLoader}: The default value is {@code null}, so you won't be able to load - * anything. - * <li>{@link #getSourceEncoding sourceEncoding}: The default value is system dependent, which makes it - * fragile on servers, so it should be set explicitly, like to "UTF-8" nowadays. - * <li>{@link #getTemplateExceptionHandler() templateExceptionHandler}: For developing - * HTML pages, the most convenient value is {@link TemplateExceptionHandler#HTML_DEBUG_HANDLER}. For production, - * {@link TemplateExceptionHandler#RETHROW_HANDLER} is safer to use. - * </ul> - * + * <p>Note that you certainly want to set the {@link #getTemplateLoader templateLoader} setting, as its default + * value is {@code null}, so you won't be able to load any templates (as FreeMarker doesn't know where from should it + * load them). + * * <p>{@link Configuration} is thread-safe and (as of 3.0.0) immutable (apart from internal caches). * * <p>The setting reader methods of this class don't throw {@link CoreSettingValueNotSetException}, because all settings @@ -2680,7 +2673,7 @@ public final class Configuration implements TopLevelConfiguration, CustomStateSc @Override protected TemplateExceptionHandler getDefaultTemplateExceptionHandler() { - return TemplateExceptionHandler.DEBUG_HANDLER; // [FM3] RETHROW; + return TemplateExceptionHandler.RETHROW_HANDLER; } @Override http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java ---------------------------------------------------------------------- diff --git a/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java b/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java index 085a627..be875a4 100644 --- a/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java +++ b/freemarker-core/src/main/java/org/apache/freemarker/core/ProcessingConfiguration.java @@ -399,13 +399,15 @@ public interface ProcessingConfiguration { /** * The exception handler used to handle exceptions occurring inside templates. - * Its {@link Configuration}-level default is {@link TemplateExceptionHandler#DEBUG_HANDLER}. The recommended + * Its {@link Configuration}-level default is {@link TemplateExceptionHandler#RETHROW_HANDLER}. The recommended * values are: * * <ul> * <li>In production systems: {@link TemplateExceptionHandler#RETHROW_HANDLER} - * <li>During development of HTML templates: {@link TemplateExceptionHandler#HTML_DEBUG_HANDLER} - * <li>During development of non-HTML templates: {@link TemplateExceptionHandler#DEBUG_HANDLER} + * <li>During development of HTML templates, if you want to the error directly in the browser: + * {@link TemplateExceptionHandler#HTML_DEBUG_HANDLER} + * <li>During development of non-HTML templates, if you want to the error directly in the output: + * {@link TemplateExceptionHandler#DEBUG_HANDLER} * </ul> * * <p>All of these will let the exception propagate further, so that you can catch it around http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/GettingStartedExample.java ---------------------------------------------------------------------- diff --git a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/GettingStartedExample.java b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/GettingStartedExample.java index a2809a4..8c677db 100644 --- a/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/GettingStartedExample.java +++ b/freemarker-manual/src/test/java/org/apache/freemarker/manual/examples/GettingStartedExample.java @@ -25,7 +25,6 @@ import java.util.Map; import org.apache.freemarker.core.Configuration; import org.apache.freemarker.core.Template; -import org.apache.freemarker.core.TemplateExceptionHandler; import org.apache.freemarker.core.templateresolver.impl.ClassTemplateLoader; import org.junit.Test; @@ -39,7 +38,6 @@ public class GettingStartedExample { /* Create the configuration singleton (using builder pattern) */ Configuration cfg = new Configuration.Builder(Configuration.VERSION_3_0_0) .templateLoader(new ClassTemplateLoader(GettingStartedExample.class, "")) - .templateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER) .build(); /* ------------------------------------------------------------------------ */ http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/0a60fc61/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java ---------------------------------------------------------------------- diff --git a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java index d881fe8..a2e5f63 100644 --- a/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java +++ b/freemarker-servlet/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java @@ -411,7 +411,7 @@ public class RealServletContainertTest extends WebAppTestCase { @Override protected TemplateExceptionHandler getDefaultTemplateExceptionHandler() { - return TemplateExceptionHandler.RETHROW_HANDLER; + return TemplateExceptionHandler.HTML_DEBUG_HANDLER; } @Override @@ -437,7 +437,7 @@ public class RealServletContainertTest extends WebAppTestCase { protected void doAssertions(Configuration cfg) { assertEquals(Configuration.VERSION_3_0_0, cfg.getIncompatibleImprovements()); - assertSame(cfg.getTemplateExceptionHandler(), TemplateExceptionHandler.RETHROW_HANDLER); + assertSame(cfg.getTemplateExceptionHandler(), TemplateExceptionHandler.HTML_DEBUG_HANDLER); assertEquals("Y,N", cfg.getBooleanFormat());
