`TemplateModelException` was removed, replaced with `TemplateException` on all 
places, except for `ObjectWrapper.wrap(Object)` and `wrapAsAPI(Object)`, which 
now throws `ObjectWrappingException` instead (that extends 
`TemplateException`). In FM2 it `TemplateModelException` has extended 
`TemplateException` and was thrown by `TemplateModel` methods. As it has turned 
out over time, some models call into FreeMarker functionality that can throw 
`TemplateException`, but the method of the model couldn't throw that as 
`TemplateModelException` is more specific. Now it can. Also it's not very 
useful in practice to catch `TemplateModelException` and the more generic 
`TemplateException` separately, so this simplification was made.


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/d73da6da
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/d73da6da
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/d73da6da

Branch: refs/heads/3
Commit: d73da6da8cf7be99db5836ff84e2e3a696e8ff62
Parents: f231e64
Author: ddekany <ddek...@apache.org>
Authored: Sun Aug 20 01:25:57 2017 +0200
Committer: ddekany <ddek...@apache.org>
Committed: Sun Aug 20 01:36:19 2017 +0200

----------------------------------------------------------------------
 FM3-CHANGE-LOG.txt                              |  10 +-
 .../freemarker/core/CoercionToTextualTest.java  |   3 +-
 .../freemarker/core/ConfigurationTest.java      |   3 +-
 .../apache/freemarker/core/DateFormatTest.java  |   3 +-
 .../freemarker/core/DirectiveCallPlaceTest.java |   3 +-
 .../freemarker/core/IteratorIssuesTest.java     |   3 +-
 .../core/NewBiObjectWrapperRestrictionTest.java |   4 +-
 .../freemarker/core/OutputFormatTest.java       |   9 +-
 .../freemarker/core/XHTMLOutputFormatTest.java  |   7 +-
 .../freemarker/core/XMLOutputFormatTest.java    |   7 +-
 .../impl/AbstractParallelIntrospectionTest.java |   7 +-
 .../CommonSupertypeForUnwrappingHintTest.java   |   4 +-
 .../DefaultObjectWrapperSingletonsTest.java     |  12 +-
 .../model/impl/DefaultObjectWrapperTest.java    |  40 +++---
 .../core/model/impl/EnumModelsTest.java         |   6 +-
 .../core/model/impl/ErrorMessagesTest.java      |  16 +--
 .../impl/FineTuneMethodAppearanceTest.java      |   6 +-
 .../impl/PrallelObjectIntrospectionTest.java    |   5 +-
 .../impl/PrallelStaticIntrospectionTest.java    |   4 +-
 .../model/impl/RestrictedObjectWrapperTest.java |  19 ++-
 .../core/model/impl/StaticModelsTest.java       |   8 +-
 .../impl/CombinedMarkupOutputFormatTest.java    |  20 +--
 .../outputformat/impl/HTMLOutputFormatTest.java |  12 +-
 .../outputformat/impl/RTFOutputFormatTest.java  |  12 +-
 .../templatesuite/models/AllTemplateModels.java |  30 ++---
 .../models/BooleanAndScalarModel.java           |   6 +-
 .../models/BooleanAndStringTemplateModel.java   |   6 +-
 .../core/templatesuite/models/BooleanList1.java |   4 +-
 .../core/templatesuite/models/BooleanList2.java |   4 +-
 .../templatesuite/models/ExceptionModel.java    |   6 +-
 .../models/HashAndScalarModel.java              |  20 +--
 .../core/templatesuite/models/Listables.java    |  11 +-
 .../core/templatesuite/models/MultiModel1.java  |   6 +-
 .../core/templatesuite/models/MultiModel4.java  |   4 +-
 .../core/templatesuite/models/MultiModel5.java  |   4 +-
 .../models/NumberAndStringModel.java            |   5 +-
 .../models/OverloadedConstructor.java           |   3 +-
 .../models/OverloadedMethods2.java              |  17 +--
 .../SimpleMapAndCollectionObjectWrapper.java    |   4 +-
 .../AppMetaTemplateDateFormatFactory.java       |   6 +-
 .../BaseNTemplateNumberFormatFactory.java       |   4 +-
 .../core/userpkg/CustomHTMLOutputFormat.java    |   3 +-
 .../core/userpkg/DummyOutputFormat.java         |   3 +-
 ...EpochMillisDivTemplateDateFormatFactory.java |   4 +-
 .../EpochMillisTemplateDateFormatFactory.java   |   4 +-
 .../HTMLISOTemplateDateFormatFactory.java       |   6 +-
 .../userpkg/HexTemplateNumberFormatFactory.java |   4 +-
 ...AndTZSensitiveTemplateDateFormatFactory.java |   7 +-
 ...aleSensitiveTemplateNumberFormatFactory.java |   4 +-
 .../userpkg/NameClashingDummyOutputFormat.java  |   4 +-
 .../PrintfGTemplateNumberFormatFactory.java     |   6 +-
 .../core/userpkg/SeldomEscapedOutputFormat.java |   3 +-
 .../core/userpkg/TestTemplateCallableModel.java |  12 +-
 .../core/valueformat/NumberFormatTest.java      |   5 +-
 .../core/templatesuite/expected/exception.txt   |   2 +-
 .../core/templatesuite/expected/exception2.txt  |   2 +-
 .../core/ASTDirCapturingAssignment.java         |   3 +-
 .../freemarker/core/ASTDirMacroOrFunction.java  |   5 +-
 .../freemarker/core/ASTDollarInterpolation.java |   1 -
 .../freemarker/core/ASTExpAddOrConcat.java      |  23 ++--
 .../freemarker/core/ASTExpBuiltInVariable.java  |   3 +-
 .../freemarker/core/ASTExpHashLiteral.java      |  11 +-
 .../freemarker/core/ASTExpNumberLiteral.java    |   2 +-
 .../apache/freemarker/core/ASTExpression.java   |   3 +-
 .../freemarker/core/BuiltInForHashEx.java       |   3 +-
 .../freemarker/core/BuiltInForMarkupOutput.java |   3 +-
 .../apache/freemarker/core/BuiltInForNode.java  |   3 +-
 .../freemarker/core/BuiltInForNodeEx.java       |   3 +-
 .../freemarker/core/BuiltInForNumber.java       |   3 +-
 .../freemarker/core/BuiltInsForHashes.java      |   5 +-
 .../core/BuiltInsForMarkupOutputs.java          |   3 +-
 .../core/BuiltInsForMultipleTypes.java          | 106 +++++----------
 .../freemarker/core/BuiltInsForNodes.java       |  21 ++-
 .../freemarker/core/BuiltInsForNumbers.java     |  31 +++--
 .../core/BuiltInsForOutputFormatRelated.java    |   2 +-
 .../freemarker/core/BuiltInsForSequences.java   |  21 ++-
 .../core/BuiltInsForStringsBasic.java           |  15 +--
 .../core/BuiltInsForStringsEncoding.java        |  24 ++--
 .../freemarker/core/BuiltInsForStringsMisc.java |   9 +-
 .../core/BuiltInsForStringsRegexp.java          |  33 ++---
 .../apache/freemarker/core/Configuration.java   |   4 +-
 .../org/apache/freemarker/core/Environment.java |  90 ++++++-------
 .../core/ListableRightUnboundedRangeModel.java  |   9 +-
 .../apache/freemarker/core/LocalContext.java    |   5 +-
 .../apache/freemarker/core/MessageUtils.java    |  17 +--
 .../freemarker/core/NativeCollectionEx.java     |   7 +-
 .../apache/freemarker/core/NativeHashEx2.java   |  21 ++-
 .../apache/freemarker/core/NativeSequence.java  |   5 +-
 .../core/NativeStringArraySequence.java         |   5 +-
 .../NativeStringCollectionCollectionEx.java     |   7 +-
 .../core/NativeStringListSequence.java          |   5 +-
 .../org/apache/freemarker/core/RangeModel.java  |   5 +-
 .../apache/freemarker/core/RegexpHelper.java    |  12 +-
 .../org/apache/freemarker/core/Template.java    |  18 ++-
 .../freemarker/core/TemplateException.java      |   8 +-
 .../org/apache/freemarker/core/_CoreAPI.java    |  15 ---
 .../org/apache/freemarker/core/_EvalUtils.java  |  39 +++---
 .../core/_ObjectBuilderSettingEvaluator.java    |   6 +-
 .../core/_TemplateModelException.java           | 133 -------------------
 .../freemarker/core/debug/DebugModel.java       |  26 ++--
 .../core/debug/RmiDebugModelImpl.java           |  24 ++--
 .../core/debug/RmiDebuggedEnvironmentImpl.java  |  22 +--
 .../core/model/EmptyCollectionExModel.java      |   8 +-
 .../freemarker/core/model/EmptyHashModel.java   |  14 +-
 .../core/model/EmptyIteratorModel.java          |   8 +-
 .../core/model/EmptyKeyValuePairIterator.java   |   6 +-
 .../core/model/EmptySequenceModel.java          |   6 +-
 .../core/model/GeneralPurposeNothing.java       |   6 +-
 .../freemarker/core/model/ObjectWrapper.java    |   2 +-
 .../core/model/ObjectWrapperAndUnwrapper.java   |  10 +-
 .../core/model/ObjectWrapperWithAPISupport.java |   2 +-
 .../core/model/ObjectWrappingException.java     |  37 ++++++
 .../core/model/TemplateBooleanModel.java        |   4 +-
 .../core/model/TemplateCollectionModel.java     |   6 +-
 .../core/model/TemplateCollectionModelEx.java   |   6 +-
 .../core/model/TemplateDateModel.java           |   4 +-
 .../core/model/TemplateHashModel.java           |   6 +-
 .../core/model/TemplateHashModelEx.java         |   7 +-
 .../core/model/TemplateHashModelEx2.java        |  14 +-
 .../core/model/TemplateModelException.java      | 113 ----------------
 .../core/model/TemplateModelIterator.java       |   8 +-
 .../core/model/TemplateModelWithAPISupport.java |   4 +-
 .../core/model/TemplateNodeModel.java           |  12 +-
 .../core/model/TemplateNodeModelEx.java         |   6 +-
 .../core/model/TemplateNumberModel.java         |   3 +-
 .../core/model/TemplateScalarModel.java         |   3 +-
 .../core/model/TemplateSequenceModel.java       |   6 +-
 .../core/model/WrappingTemplateModel.java       |   4 +-
 .../core/model/impl/ArgumentTypes.java          |   8 +-
 .../freemarker/core/model/impl/BeanModel.java   |  27 ++--
 .../model/impl/CallableMemberDescriptor.java    |   6 +-
 .../core/model/impl/ClassBasedModelFactory.java |  16 ++-
 .../core/model/impl/CollectionAdapter.java      |   8 +-
 .../core/model/impl/CollectionAndSequence.java  |  14 +-
 .../core/model/impl/DefaultArrayAdapter.java    |  42 +++---
 .../model/impl/DefaultEnumerationAdapter.java   |  16 +--
 .../core/model/impl/DefaultIterableAdapter.java |   6 +-
 .../core/model/impl/DefaultIteratorAdapter.java |  16 +--
 .../core/model/impl/DefaultListAdapter.java     |  10 +-
 .../core/model/impl/DefaultMapAdapter.java      |  15 +--
 .../impl/DefaultNonListCollectionAdapter.java   |   6 +-
 .../core/model/impl/DefaultObjectWrapper.java   |  63 +++++----
 .../DefaultUnassignableIteratorAdapter.java     |   8 +-
 .../freemarker/core/model/impl/HashAdapter.java |  14 +-
 .../model/impl/InvalidPropertyException.java    |   4 +-
 .../model/impl/MapKeyValuePairIterator.java     |   9 +-
 .../core/model/impl/MemberAndArguments.java     |   6 +-
 .../model/impl/OverloadedFixArgsMethods.java    |   6 +-
 .../model/impl/OverloadedJavaMethodModel.java   |   9 +-
 .../core/model/impl/OverloadedMethods.java      |   7 +-
 .../model/impl/OverloadedMethodsSubset.java     |   4 +-
 .../model/impl/OverloadedVarArgsMethods.java    |   8 +-
 .../ReflectionCallableMemberDescriptor.java     |   4 +-
 .../core/model/impl/ResourceBundleModel.java    |  13 +-
 .../model/impl/RestrictedObjectWrapper.java     |  11 +-
 .../core/model/impl/SequenceAdapter.java        |   6 +-
 .../core/model/impl/SimpleCollection.java       |  14 +-
 .../freemarker/core/model/impl/SimpleHash.java  |  13 +-
 .../core/model/impl/SimpleJavaMethodModel.java  |   5 +-
 .../core/model/impl/SimpleMethod.java           |  23 ++--
 .../core/model/impl/SimpleSequence.java         |   4 +-
 .../freemarker/core/model/impl/StaticModel.java |  18 +--
 .../core/model/impl/StaticModels.java           |   4 +-
 .../core/model/impl/_MethodUtils.java           |  15 +--
 .../freemarker/core/model/impl/_ModelAPI.java   |   6 +-
 .../outputformat/CommonMarkupOutputFormat.java  |  20 +--
 .../core/outputformat/MarkupOutputFormat.java   |  24 ++--
 .../impl/CombinedMarkupOutputFormat.java        |   8 +-
 .../outputformat/impl/HTMLOutputFormat.java     |   4 +-
 .../core/outputformat/impl/RTFOutputFormat.java |   4 +-
 .../outputformat/impl/XHTMLOutputFormat.java    |   4 +-
 .../core/outputformat/impl/XMLOutputFormat.java |   4 +-
 .../freemarker/core/util/CallableUtils.java     |  22 ++-
 .../apache/freemarker/core/util/DeepUnwrap.java |  14 +-
 .../core/valueformat/TemplateDateFormat.java    |   8 +-
 .../core/valueformat/TemplateFormatUtil.java    |  10 +-
 .../core/valueformat/TemplateNumberFormat.java  |   8 +-
 .../impl/ISOLikeTemplateDateFormat.java         |   4 +-
 .../impl/JavaTemplateDateFormat.java            |   4 +-
 .../impl/JavaTemplateNumberFormat.java          |   5 +-
 freemarker-core/src/main/javacc/FTL.jj          |  10 +-
 .../apache/freemarker/dom/DocumentModel.java    |   6 +-
 .../freemarker/dom/DocumentTypeModel.java       |  10 +-
 .../org/apache/freemarker/dom/ElementModel.java |  10 +-
 .../freemarker/dom/JaxenXPathSupport.java       |  13 +-
 .../apache/freemarker/dom/NodeListModel.java    |  16 +--
 .../org/apache/freemarker/dom/NodeModel.java    |  33 ++---
 .../dom/NodeQueryResultItemObjectWrapper.java   |   6 +-
 .../dom/SunInternalXalanXPathSupport.java       |  16 +--
 .../org/apache/freemarker/dom/XPathSupport.java |   4 +-
 .../freemarker/dom/XalanXPathSupport.java       |  16 +--
 .../BaseNTemplateNumberFormatFactory.java       |   4 +-
 .../UnitAwareTemplateNumberFormatFactory.java   |   4 +-
 .../examples/UnitAwareTemplateNumberModel.java  |   4 +-
 .../servlet/AllHttpScopesHashModel.java         |   4 +-
 .../freemarker/servlet/FreemarkerServlet.java   |  13 +-
 .../servlet/HttpRequestHashModel.java           |   4 +-
 .../servlet/HttpSessionHashModel.java           |  10 +-
 .../servlet/ServletContextHashModel.java        |   4 +-
 .../servlet/jsp/FreeMarkerPageContext.java      |  21 +--
 .../freemarker/servlet/jsp/JspTagModelBase.java |  18 ++-
 .../servlet/jsp/PageContextFactory.java         |   4 +-
 .../servlet/jsp/SimpleTagDirectiveModel.java    |   2 +-
 .../servlet/jsp/TagDirectiveModel.java          |  26 ++--
 .../freemarker/servlet/jsp/TaglibFactory.java   |  10 +-
 .../servlet/jsp/_FreeMarkerPageContext21.java   |   4 +-
 .../servlet/jsp/JspTestFreemarkerServlet.java   |   5 +-
 .../basic/WEB-INF/expected/customTags1.txt      |   2 +-
 .../templateutil/AssertEqualsDirective.java     |   5 +-
 .../test/templateutil/AssertFailsDirective.java |  12 +-
 210 files changed, 1090 insertions(+), 1369 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/FM3-CHANGE-LOG.txt
----------------------------------------------------------------------
diff --git a/FM3-CHANGE-LOG.txt b/FM3-CHANGE-LOG.txt
index 0c69572..8e08099 100644
--- a/FM3-CHANGE-LOG.txt
+++ b/FM3-CHANGE-LOG.txt
@@ -198,7 +198,7 @@ Major changes / features
     `TemplateDirectiveModel`, `TemplateTransformModel`). FM3 replaces them 
with only two new interfaces,
     `TemplateDirectiveModel` (differs from the interface with identical name 
in FM2) and `TemplateFunctionModel`.
     (These are both the subinterfaces of another new interface 
`TemplateCallableModel`.)
-  - All callable TempalteModel-s support passing parameters by position and by 
name, even in the same call
+  - All callable TemplateModel-s support passing parameters by position and by 
name, even in the same call
     (e.g., `<@heading "Some title" icon="foo.jpg" />`, `sum(1, 2, 3, 
abs=true)`)
   - `#macro` now produces a `TemplateDirectiveModel` and `#function` produces 
a `TemplateFunctionModel`. (Earlier, the
     product was just a generic `TemplateModel` that could only be invoked 
using internal API-s, and had capabilities
@@ -377,6 +377,14 @@ Core / Models and Object wrapping
   the common interface bith for wrapped Java methods and functions defined in 
the templates, or on any other ways.
   `OverloadedMethodsModel` and `SimpleMethodModel` were renamed to 
`OverloadJavaMethodModel` and  `SimpleJavaMethodModel`,
   which of course extend `TemplateFunctionModel`, but allow inocations without 
`Environment` parameter.
+- `TemplateModelException` was removed, replaced with `TemplateException` on 
all places, except for
+  `ObjectWrapper.wrap(Object)` and `wrapAsAPI(Object)`, which now throws 
`ObjectWrappingException` instead (that extends
+  `TemplateException`).
+  In FM2 it `TemplateModelException` has extended `TemplateException` and was 
thrown by `TemplateModel` methods. As it
+  has turned out over time, some models call into FreeMarker functionality 
that can throw `TemplateException`, but the
+  method of the model couldn't throw that as `TemplateModelException` is more 
specific. Now it can. Also it's not very
+  useful in practice to catch `TemplateModelException` and the more generic 
`TemplateException` separately, so this
+  simplification was made.
 
 Core / Template loading and caching
 ...................................

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/CoercionToTextualTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/CoercionToTextualTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/CoercionToTextualTest.java
index 1a98373..ce6a319 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/CoercionToTextualTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/CoercionToTextualTest.java
@@ -23,7 +23,6 @@ import java.util.Collections;
 import java.util.Date;
 
 import org.apache.freemarker.core.model.TemplateDateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.impl.SimpleDate;
 import org.apache.freemarker.core.outputformat.impl.HTMLOutputFormat;
 import org.apache.freemarker.core.userpkg.HTMLISOTemplateDateFormatFactory;
@@ -138,7 +137,7 @@ public class CoercionToTextualTest extends TemplateTest {
     }
 
     @Before
-    public void setup() throws TemplateModelException {
+    public void setup() throws TemplateException {
         addToDataModel("s", "abc");
         addToDataModel("n", 1500);
         addToDataModel("dt", TM);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/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 dab1460..bd6c81d 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
@@ -45,7 +45,6 @@ import java.util.Set;
 import java.util.TimeZone;
 import java.util.TreeSet;
 
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.core.model.impl.RestrictedObjectWrapper;
@@ -938,7 +937,7 @@ public class ConfigurationTest {
     private static class MyScalarModel implements TemplateScalarModel {
 
         @Override
-        public String getAsString() throws TemplateModelException {
+        public String getAsString() throws TemplateException {
             return "my";
         }
         

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/DateFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/DateFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/DateFormatTest.java
index b0ca6ad..3076919 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/DateFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/DateFormatTest.java
@@ -30,7 +30,6 @@ import java.util.Locale;
 import java.util.TimeZone;
 
 import org.apache.freemarker.core.model.TemplateDateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.impl.SimpleDate;
 import 
org.apache.freemarker.core.templateresolver.ConditionalTemplateConfigurationFactory;
 import org.apache.freemarker.core.templateresolver.FileNameGlobMatcher;
@@ -450,7 +449,7 @@ public class DateFormatTest extends TemplateTest {
         }
 
         @Override
-        public Date getAsDate() throws TemplateModelException {
+        public Date getAsDate() throws TemplateException {
             return date;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
index 25a05ac..471e13d 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/DirectiveCallPlaceTest.java
@@ -30,7 +30,6 @@ import org.apache.freemarker.core.model.ArgumentArrayLayout;
 import org.apache.freemarker.core.model.TemplateDirectiveModel;
 import org.apache.freemarker.core.model.TemplateHashModelEx2;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 import org.apache.freemarker.core.util.CommonSupplier;
 import org.apache.freemarker.test.TemplateTest;
@@ -127,7 +126,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
 
                             });
                 } catch (CallPlaceCustomDataInitializationException e) {
-                    throw new TemplateModelException("Failed to pre-render 
nested content", e);
+                    throw new TemplateException("Failed to pre-render nested 
content", e);
                 }
             } else {
                 convertedText = convertBodyText(callPlace, env);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/IteratorIssuesTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/IteratorIssuesTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/IteratorIssuesTest.java
index 08fcee2..368ec9f 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/IteratorIssuesTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/IteratorIssuesTest.java
@@ -21,6 +21,7 @@ package org.apache.freemarker.core;
 import java.util.Arrays;
 import java.util.Iterator;
 
+import org.apache.freemarker.core.model.ObjectWrappingException;
 import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.test.TemplateTest;
 import org.junit.Test;
@@ -48,7 +49,7 @@ public class IteratorIssuesTest extends TemplateTest {
     }
 
     @Test
-    public void testListAndHasContent() throws Exception {
+    public void testListAndHasContent() throws ObjectWrappingException {
         addToDataModel("it", OW.wrap(getAbcIt()));
         assertErrorContains(FTL_LIST_AND_HAS_CONTENT, "can be listed only 
once");
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
index a90e28b..0548e42 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/NewBiObjectWrapperRestrictionTest.java
@@ -25,11 +25,11 @@ import java.util.Collection;
 import java.util.Map;
 
 import org.apache.freemarker.core.model.ObjectWrapper;
+import org.apache.freemarker.core.model.ObjectWrappingException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
 import org.apache.freemarker.core.model.TemplateDateModel;
 import org.apache.freemarker.core.model.TemplateModel;
 import org.apache.freemarker.core.model.TemplateModelAdapter;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.impl.DefaultObjectWrapper;
 import org.apache.freemarker.core.model.impl.SimpleDate;
 import org.apache.freemarker.core.model.impl.SimpleHash;
@@ -67,7 +67,7 @@ public class NewBiObjectWrapperRestrictionTest extends 
TemplateTest {
     public static class EntirelyCustomObjectWrapper implements ObjectWrapper {
 
         @Override
-        public TemplateModel wrap(Object obj) throws TemplateModelException {
+        public TemplateModel wrap(Object obj) throws ObjectWrappingException {
             if (obj == null) {
                 return null;
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/OutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/OutputFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/OutputFormatTest.java
index 51a0070..279516f 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/OutputFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/OutputFormatTest.java
@@ -26,7 +26,6 @@ import java.io.StringWriter;
 import java.io.Writer;
 import java.util.Collections;
 
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.outputformat.OutputFormat;
 import org.apache.freemarker.core.outputformat.impl.HTMLOutputFormat;
 import org.apache.freemarker.core.outputformat.impl.PlainTextOutputFormat;
@@ -804,7 +803,7 @@ public class OutputFormatTest extends TemplateTest {
 
     private Configuration testAutoEscPolicy_createCfg(AutoEscapingPolicy 
autoEscPolicy,
             OutputFormat outpoutFormat)
-            throws TemplateModelException {
+            throws TemplateException {
         return createDefaultConfigurationBuilder()
                 .registeredCustomOutputFormats(ImmutableList.<OutputFormat>of(
                         SeldomEscapedOutputFormat.INSTANCE, 
DummyOutputFormat.INSTANCE))
@@ -989,7 +988,7 @@ public class OutputFormatTest extends TemplateTest {
         assertOutput("${m1?isMarkupOutput?c} ${m2?isMarkupOutput?c} 
${s?isMarkupOutput?c}", "true true false");
     }
 
-    private TestConfigurationBuilder createDefaultConfigurationBuilder() 
throws TemplateModelException {
+    private TestConfigurationBuilder createDefaultConfigurationBuilder() 
throws TemplateException {
         return new TestConfigurationBuilder()
                 .templateConfigurations(
                         new ConditionalTemplateConfigurationFactory(
@@ -1001,7 +1000,7 @@ public class OutputFormatTest extends TemplateTest {
     }
 
     @Before
-    public void addCommonDataModelVariables() throws TemplateModelException {
+    public void addCommonDataModelVariables() throws TemplateException {
         addToDataModel("rtfPlain", 
RTFOutputFormat.INSTANCE.fromPlainTextByEscaping("\\par a & b"));
         addToDataModel("rtfMarkup", RTFOutputFormat.INSTANCE.fromMarkup("\\par 
c"));
         addToDataModel("htmlPlain", 
HTMLOutputFormat.INSTANCE.fromPlainTextByEscaping("a < {h'}"));
@@ -1011,7 +1010,7 @@ public class OutputFormatTest extends TemplateTest {
     }
 
     @Override
-    protected Configuration createDefaultConfiguration() throws 
TemplateModelException {
+    protected Configuration createDefaultConfiguration() throws 
TemplateException {
         return createDefaultConfigurationBuilder().build();
     }
     

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/XHTMLOutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/XHTMLOutputFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/XHTMLOutputFormatTest.java
index 77951ed..6ba4418 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/XHTMLOutputFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/XHTMLOutputFormatTest.java
@@ -24,20 +24,19 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.junit.Test; 
+import org.junit.Test;
 
 public class XHTMLOutputFormatTest {
     
     @Test
-    public void testOutputMO() throws TemplateModelException, IOException {
+    public void testOutputMO() throws TemplateException, IOException {
        StringWriter out = new StringWriter();
        INSTANCE.output(INSTANCE.fromPlainTextByEscaping("a'b"), out);
        assertEquals("a&#39;b", out.toString());
     }
     
     @Test
-    public void testOutputString() throws TemplateModelException, IOException {
+    public void testOutputString() throws TemplateException, IOException {
         StringWriter out = new StringWriter();
         INSTANCE.output("a'b", out);
         assertEquals("a&#39;b", out.toString());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/XMLOutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/XMLOutputFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/XMLOutputFormatTest.java
index 7e95e6d..8d4bbc1 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/XMLOutputFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/XMLOutputFormatTest.java
@@ -24,20 +24,19 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.freemarker.core.model.TemplateModelException;
-import org.junit.Test; 
+import org.junit.Test;
 
 public class XMLOutputFormatTest {
     
     @Test
-    public void testOutputMO() throws TemplateModelException, IOException {
+    public void testOutputMO() throws TemplateException, IOException {
        StringWriter out = new StringWriter();
        INSTANCE.output(INSTANCE.fromPlainTextByEscaping("a'b"), out);
        assertEquals("a&apos;b", out.toString());
     }
     
     @Test
-    public void testOutputString() throws TemplateModelException, IOException {
+    public void testOutputString() throws TemplateException, IOException {
         StringWriter out = new StringWriter();
         INSTANCE.output("a'b", out);
         assertEquals("a&apos;b", out.toString());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
index 49d4009..f62587b 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/AbstractParallelIntrospectionTest.java
@@ -22,10 +22,9 @@ package org.apache.freemarker.core.model.impl;
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.NonTemplateCallPlace;
 import org.apache.freemarker.core.TemplateException;
-import org.apache.freemarker.core.util.CallableUtils;
 import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateNumberModel;
+import org.apache.freemarker.core.util.CallableUtils;
 
 import junit.framework.TestCase;
 
@@ -67,7 +66,7 @@ public abstract class AbstractParallelIntrospectionTest 
extends TestCase {
         }
     }
 
-    protected abstract TemplateHashModel getWrappedEntity(int objIdx) throws 
TemplateModelException;
+    protected abstract TemplateHashModel getWrappedEntity(int objIdx) throws 
TemplateException;
     
     protected final DefaultObjectWrapper getObjectWrapper() {
         return ow;
@@ -102,7 +101,7 @@ public abstract class AbstractParallelIntrospectionTest 
extends TestCase {
         }
 
         private void testProperty(TemplateHashModel h, int objIdx, int mIdx)
-                throws TemplateModelException, AssertionError {
+                throws TemplateException, AssertionError {
             TemplateNumberModel pv = (TemplateNumberModel) h.get("p" + mIdx);
             final int expected = objIdx * 1000 + mIdx;
             final int got = pv.getAsNumber().intValue();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
index fb9a065..4201917 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/CommonSupertypeForUnwrappingHintTest.java
@@ -23,7 +23,6 @@ import java.io.Serializable;
 import java.util.List;
 
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 
 import junit.framework.TestCase;
 
@@ -121,8 +120,7 @@ public class CommonSupertypeForUnwrappingHintTest extends 
TestCase {
         }
 
         @Override
-        MaybeEmptyMemberAndArguments getMemberAndArguments(TemplateModel[] 
tmArgs, DefaultObjectWrapper w) throws
-                TemplateModelException {
+        MaybeEmptyMemberAndArguments getMemberAndArguments(TemplateModel[] 
tmArgs, DefaultObjectWrapper w) {
             throw new RuntimeException("Not implemented in this dummy.");
         }
         

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperSingletonsTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperSingletonsTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperSingletonsTest.java
index dd7581c..faee8c0 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperSingletonsTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperSingletonsTest.java
@@ -29,10 +29,10 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.Version;
 import org.apache.freemarker.core.model.TemplateDateModel;
 import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 import org.apache.freemarker.test.TestUtils;
 
@@ -308,7 +308,7 @@ public class DefaultObjectWrapperSingletonsTest extends 
TestCase {
         assertTrue(hardReferences.size() != 0);  // just to save it from GC 
until this line        
     }
     
-    public void testClassInrospectorCache() throws TemplateModelException {
+    public void testClassInrospectorCache() throws TemplateException {
         assertFalse(new 
DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0)
                 
.usePrivateCaches(true).build().isClassIntrospectionCacheRestricted());
         assertTrue(new 
DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0)
@@ -599,7 +599,7 @@ public class DefaultObjectWrapperSingletonsTest extends 
TestCase {
         
     }
 
-    private boolean exposesFields(DefaultObjectWrapper ow) throws 
TemplateModelException {
+    private boolean exposesFields(DefaultObjectWrapper ow) throws 
TemplateException {
         TemplateHashModel thm = (TemplateHashModel) ow.wrap(new C());
         TemplateScalarModel r = (TemplateScalarModel) thm.get("foo");
         if (r == null) return false;
@@ -607,7 +607,7 @@ public class DefaultObjectWrapperSingletonsTest extends 
TestCase {
         return true;
     }
 
-    private boolean exposesProperties(DefaultObjectWrapper ow) throws 
TemplateModelException {
+    private boolean exposesProperties(DefaultObjectWrapper ow) throws 
TemplateException {
         TemplateHashModel thm = (TemplateHashModel) ow.wrap(new C());
         TemplateScalarModel r = (TemplateScalarModel) thm.get("bar");
         if (r == null) return false;
@@ -615,12 +615,12 @@ public class DefaultObjectWrapperSingletonsTest extends 
TestCase {
         return true;
     }
 
-    private boolean exposesMethods(DefaultObjectWrapper ow) throws 
TemplateModelException {
+    private boolean exposesMethods(DefaultObjectWrapper ow) throws 
TemplateException {
         TemplateHashModel thm = (TemplateHashModel) ow.wrap(new C());
         return thm.get("getBar") != null;
     }
 
-    private boolean exposesUnsafe(DefaultObjectWrapper ow) throws 
TemplateModelException {
+    private boolean exposesUnsafe(DefaultObjectWrapper ow) throws 
TemplateException {
         TemplateHashModel thm = (TemplateHashModel) ow.wrap(new C());
         return thm.get("wait") != null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
index 0f9722e..e307cb2 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperTest.java
@@ -45,17 +45,16 @@ import org.apache.freemarker.core.NonTemplateCallPlace;
 import org.apache.freemarker.core.Template;
 import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.Version;
-import org.apache.freemarker.core.util.CallableUtils;
 import org.apache.freemarker.core._CoreAPI;
 import org.apache.freemarker.core.model.AdapterTemplateModel;
 import org.apache.freemarker.core.model.ObjectWrapper;
+import org.apache.freemarker.core.model.ObjectWrappingException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
 import org.apache.freemarker.core.model.TemplateCollectionModel;
 import org.apache.freemarker.core.model.TemplateCollectionModelEx;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateHashModelEx;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateModelIterator;
 import org.apache.freemarker.core.model.TemplateModelWithAPISupport;
 import org.apache.freemarker.core.model.TemplateNumberModel;
@@ -63,6 +62,7 @@ import org.apache.freemarker.core.model.TemplateScalarModel;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
 import org.apache.freemarker.core.model.WrapperTemplateModel;
 import org.apache.freemarker.core.model.WrappingTemplateModel;
+import org.apache.freemarker.core.util.CallableUtils;
 import org.apache.freemarker.test.TestConfigurationBuilder;
 import org.junit.Test;
 
@@ -276,7 +276,7 @@ public class DefaultObjectWrapperTest {
     }
 
     private void assertCollectionTMEquals(TemplateCollectionModel coll, 
Object... expectedItems)
-            throws TemplateModelException {
+            throws TemplateException {
         for (int i = 0; i < 2; i++) { // Run twice to check if we always get a 
new iterator
             int idx = 0;
             TemplateModelIterator it2 = null;
@@ -351,14 +351,14 @@ public class DefaultObjectWrapperTest {
             try {
                 it.next();
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), containsString("no more"));
             }
         }
     }
 
     @Test
-    public void testArrayAdapterTypes() throws TemplateModelException {
+    public void testArrayAdapterTypes() throws ObjectWrappingException {
         assertArrayAdapterClass("Object", OW.wrap(new Object[] {}));
         assertArrayAdapterClass("Object", OW.wrap(new String[] {}));
         assertArrayAdapterClass("byte", OW.wrap(new byte[] {}));
@@ -379,7 +379,7 @@ public class DefaultObjectWrapperTest {
 
     @SuppressWarnings("boxing")
     @Test
-    public void testArrayAdapters() throws TemplateModelException {
+    public void testArrayAdapters() throws TemplateException {
         {
             final String[] testArray = new String[] { "a", null, "c" };
 
@@ -504,7 +504,7 @@ public class DefaultObjectWrapperTest {
 
     @SuppressWarnings("boxing")
     @Test
-    public void testCollectionAdapterOutOfBounds() throws 
TemplateModelException {
+    public void testCollectionAdapterOutOfBounds() throws TemplateException {
         Set set = Collections.singleton(123);
 
         TemplateCollectionModelEx coll = (TemplateCollectionModelEx) 
OW.wrap(set);
@@ -521,14 +521,14 @@ public class DefaultObjectWrapperTest {
             try {
                 it.next();
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), containsStringIgnoringCase("no 
more"));
             }
         }
     }
 
     @Test
-    public void testCollectionAdapterAndNulls() throws TemplateModelException {
+    public void testCollectionAdapterAndNulls() throws TemplateException {
         Set set = new HashSet();
         set.add(null);
 
@@ -558,14 +558,14 @@ public class DefaultObjectWrapperTest {
         try {
             itIt.next();
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsStringIgnoringCase("no more"));
         }
 
         try {
             itIt2.hasNext();
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsString("can be listed only 
once"));
         }
 
@@ -573,7 +573,7 @@ public class DefaultObjectWrapperTest {
         try {
             itIt3.hasNext();
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsString("can be listed only 
once"));
         }
     }
@@ -592,7 +592,7 @@ public class DefaultObjectWrapperTest {
 
     @SuppressWarnings("boxing")
     @Test
-    public void testCharKeyFallback() throws TemplateModelException {
+    public void testCharKeyFallback() throws TemplateException {
         Map hashMapS = new HashMap<>();
         hashMapS.put("a", 1);
         Map sortedMapS = new TreeMap<>();
@@ -607,7 +607,7 @@ public class DefaultObjectWrapperTest {
         assertEquals(1, OW.unwrap(((TemplateHashModel) 
OW.wrap(sortedMapS)).get("a")));
         try {
             ((TemplateHashModel) OW.wrap(sortedMapC)).get("a");
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsStringIgnoringCase("String 
key"));
         }
         
@@ -616,7 +616,7 @@ public class DefaultObjectWrapperTest {
         assertNull(((TemplateHashModel) OW.wrap(sortedMapS)).get("b"));
         try {
             ((TemplateHashModel) OW.wrap(sortedMapC)).get("b");
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsStringIgnoringCase("String 
key"));
         }
     }
@@ -644,7 +644,7 @@ public class DefaultObjectWrapperTest {
             try {
                 iteratorTM.next();
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), containsStringIgnoringCase("no 
more"));
             }
         }
@@ -721,7 +721,7 @@ public class DefaultObjectWrapperTest {
         }
     }
 
-    private TemplateHashModel wrapWithExposureLevel(Object bean, int 
exposureLevel) throws TemplateModelException {
+    private TemplateHashModel wrapWithExposureLevel(Object bean, int 
exposureLevel) throws ObjectWrappingException {
         return (TemplateHashModel) new 
DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0)
                 .exposureLevel(exposureLevel).build()
                 .wrap(bean);
@@ -851,7 +851,7 @@ public class DefaultObjectWrapperTest {
         }
         
         @Override
-        protected TemplateModel wrapGenericObject(final Object obj) throws 
TemplateModelException {
+        protected TemplateModel wrapGenericObject(final Object obj) throws 
ObjectWrappingException {
             if (obj instanceof Tupple) {
                 return new TuppleAdapter((Tupple<?, ?>) obj, this);
             }
@@ -872,12 +872,12 @@ public class DefaultObjectWrapperTest {
         }
 
         @Override
-        public int size() throws TemplateModelException {
+        public int size() throws TemplateException {
             return 2;
         }
         
         @Override
-        public TemplateModel get(int index) throws TemplateModelException {
+        public TemplateModel get(int index) throws TemplateException {
             switch (index) {
             case 0: return wrap(tupple.getE1());
             case 1: return wrap(tupple.getE2());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
index 89b6ec5..a43ee29 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/EnumModelsTest.java
@@ -23,11 +23,11 @@ import static org.junit.Assert.*;
 
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.NonTemplateCallPlace;
-import org.apache.freemarker.core.util.CallableUtils;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
+import org.apache.freemarker.core.util.CallableUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -49,7 +49,7 @@ public class EnumModelsTest {
         try {
             enums.get("no.such.ClassExists");
             fail();
-        } catch (TemplateModelException ex) {
+        } catch (TemplateException ex) {
             assertTrue(ex.getCause() instanceof ClassNotFoundException);
         }
         

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
index 89b06be..e582a87 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/ErrorMessagesTest.java
@@ -26,9 +26,9 @@ import java.util.Date;
 
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.NonTemplateCallPlace;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 import org.apache.freemarker.core.outputformat.impl.HTMLOutputFormat;
 import org.apache.freemarker.core.outputformat.impl.TemplateHTMLOutputModel;
@@ -37,13 +37,13 @@ import org.junit.Test;
 public class ErrorMessagesTest {
 
     @Test
-    public void getterMessage() throws TemplateModelException {
+    public void getterMessage() throws TemplateException {
         DefaultObjectWrapper ow = new 
DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0).build();
         TemplateHashModel thm= (TemplateHashModel) ow.wrap(new TestBean());
         
         try {
             thm.get("foo");
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             e.printStackTrace();
             final String msg = e.getMessage();
             assertThat(msg, containsString("\"foo\""));
@@ -64,7 +64,7 @@ public class ErrorMessagesTest {
             try {
                 m.execute(new TemplateModel[] { html }, 
NonTemplateCallPlace.INSTANCE);
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), allOf(
                         containsString("String"), containsString("convert"), 
containsString("markupOutput"),
                         containsString("Tip:"), 
containsString("?markupString")));
@@ -76,7 +76,7 @@ public class ErrorMessagesTest {
             try {
                 m.execute(new TemplateModel[] { html }, 
NonTemplateCallPlace.INSTANCE);
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), allOf(
                         containsString("Date"), containsString("convert"), 
containsString("markupOutput"),
                         not(containsString("?markupString"))));
@@ -88,7 +88,7 @@ public class ErrorMessagesTest {
             try {
                 m.execute(new TemplateModel[] { html }, 
NonTemplateCallPlace.INSTANCE);
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), allOf(
                         containsString("No compatible overloaded"),
                         containsString("String"), 
containsString("markupOutput"),
@@ -101,7 +101,7 @@ public class ErrorMessagesTest {
             try {
                 m.execute(new TemplateModel[] { html }, 
NonTemplateCallPlace.INSTANCE);
                 fail();
-            } catch (TemplateModelException e) {
+            } catch (TemplateException e) {
                 assertThat(e.getMessage(), allOf(
                         containsString("No compatible overloaded"),
                         containsString("Integer"), 
containsString("markupOutput"),
@@ -161,7 +161,7 @@ public class ErrorMessagesTest {
             return s;
         }
 
-        public String mOverloaded4(TemplateHTMLOutputModel s) throws 
TemplateModelException {
+        public String mOverloaded4(TemplateHTMLOutputModel s) throws 
TemplateException {
             return s.getOutputFormat().getMarkupString(s);
         }
         

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
index e5366f6..b1cf265 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/FineTuneMethodAppearanceTest.java
@@ -22,9 +22,9 @@ package org.apache.freemarker.core.model.impl;
 import static org.junit.Assert.*;
 
 import org.apache.freemarker.core.Configuration;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,7 +34,7 @@ import org.junit.runners.JUnit4;
 public class FineTuneMethodAppearanceTest {
 
     @Test
-    public void newWayOfConfiguring() throws TemplateModelException {
+    public void newWayOfConfiguring() throws TemplateException {
         DefaultObjectWrapper ow = new 
DefaultObjectWrapper.Builder(Configuration.VERSION_3_0_0)
                 
.methodAppearanceFineTuner(GetlessMethodsAsPropertyGettersRule.INSTANCE)
                 .exposeFields(true)
@@ -42,7 +42,7 @@ public class FineTuneMethodAppearanceTest {
         checkIfProperlyWrapped(ow.wrap(new C()));
     }
     
-    private void checkIfProperlyWrapped(TemplateModel tm) throws 
TemplateModelException {
+    private void checkIfProperlyWrapped(TemplateModel tm) throws 
TemplateException {
         TemplateHashModel thm = (TemplateHashModel) tm;
         assertEquals("v1", ((TemplateScalarModel) 
thm.get("v1")).getAsString());
         assertEquals("v2()", ((TemplateScalarModel) 
thm.get("v2")).getAsString());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelObjectIntrospectionTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelObjectIntrospectionTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelObjectIntrospectionTest.java
index 4f4c0a1..b432921 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelObjectIntrospectionTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelObjectIntrospectionTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.freemarker.core.model.impl;
 
+import org.apache.freemarker.core.model.ObjectWrappingException;
 import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 
 public class PrallelObjectIntrospectionTest extends 
AbstractParallelIntrospectionTest {
 
@@ -34,8 +34,7 @@ public class PrallelObjectIntrospectionTest extends 
AbstractParallelIntrospectio
     }
     
     @Override
-    protected TemplateHashModel getWrappedEntity(int objIdx)
-    throws TemplateModelException {
+    protected TemplateHashModel getWrappedEntity(int objIdx) throws 
ObjectWrappingException {
         return (TemplateHashModel) getObjectWrapper().wrap(
                 ManyObjectsOfDifferentClasses.OBJECTS[objIdx]);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelStaticIntrospectionTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelStaticIntrospectionTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelStaticIntrospectionTest.java
index 836d559..c56803d 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelStaticIntrospectionTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/PrallelStaticIntrospectionTest.java
@@ -19,8 +19,8 @@
 
 package org.apache.freemarker.core.model.impl;
 
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateHashModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 
 public class PrallelStaticIntrospectionTest extends 
AbstractParallelIntrospectionTest {
 
@@ -38,7 +38,7 @@ public class PrallelStaticIntrospectionTest extends 
AbstractParallelIntrospectio
     
     @Override
     protected TemplateHashModel getWrappedEntity(int clIdx)
-    throws TemplateModelException {
+    throws TemplateException {
         return (TemplateHashModel) getObjectWrapper().getStaticModels().get(
                 STATICS_CLASS_CONTAINER_CLASS_NAME + "$C"
                 + clIdx);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/RestrictedObjectWrapperTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/RestrictedObjectWrapperTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/RestrictedObjectWrapperTest.java
index 1033340..4115cfb 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/RestrictedObjectWrapperTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/RestrictedObjectWrapperTest.java
@@ -39,12 +39,12 @@ import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.TemplateException;
+import org.apache.freemarker.core.model.ObjectWrappingException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
 import org.apache.freemarker.core.model.TemplateCollectionModel;
 import org.apache.freemarker.core.model.TemplateCollectionModelEx;
 import org.apache.freemarker.core.model.TemplateDateModel;
 import org.apache.freemarker.core.model.TemplateHashModelEx2;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateModelWithAPISupport;
 import org.apache.freemarker.core.model.TemplateNumberModel;
 import org.apache.freemarker.core.model.TemplateScalarModel;
@@ -58,7 +58,7 @@ import org.xml.sax.SAXException;
 public class RestrictedObjectWrapperTest {
 
     @Test
-    public void testBasics() throws TemplateModelException {
+    public void testBasics() throws TemplateException {
         PostConstruct.class.toString();
         RestrictedObjectWrapper ow = new 
RestrictedObjectWrapper.Builder(Configuration.VERSION_3_0_0).build();
         testCustomizationCommonPart(ow);
@@ -69,7 +69,7 @@ public class RestrictedObjectWrapperTest {
     }
 
     @SuppressWarnings("boxing")
-    private void testCustomizationCommonPart(RestrictedObjectWrapper ow) 
throws TemplateModelException {
+    private void testCustomizationCommonPart(RestrictedObjectWrapper ow) 
throws TemplateException {
         assertTrue(ow.wrap("x") instanceof SimpleScalar);
         assertTrue(ow.wrap(1.5) instanceof SimpleNumber);
         assertTrue(ow.wrap(new Date()) instanceof SimpleDate);
@@ -78,13 +78,13 @@ public class RestrictedObjectWrapperTest {
         try {
             ow.wrap(new TestBean());
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsStringIgnoringCase("type"));
         }
     }
 
     @Test
-    public void testDoesNotAllowAPIBuiltin() throws TemplateModelException {
+    public void testDoesNotAllowAPIBuiltin() throws TemplateException {
         RestrictedObjectWrapper sow = new 
RestrictedObjectWrapper.Builder(Configuration.VERSION_3_0_0).build();
 
         TemplateModelWithAPISupport map = (TemplateModelWithAPISupport) 
sow.wrap(new HashMap());
@@ -98,7 +98,7 @@ public class RestrictedObjectWrapperTest {
 
     @SuppressWarnings("boxing")
     @Test
-    public void testCanWrapBasicTypes() throws TemplateModelException {
+    public void testCanWrapBasicTypes() throws ObjectWrappingException {
         RestrictedObjectWrapper sow = new 
RestrictedObjectWrapper.Builder(Configuration.VERSION_3_0_0).build();
         assertTrue(sow.wrap("s") instanceof TemplateScalarModel);
         assertTrue(sow.wrap(1) instanceof TemplateNumberModel);
@@ -113,8 +113,7 @@ public class RestrictedObjectWrapperTest {
     }
 
     @Test
-    public void testWontWrapDOM() throws SAXException, IOException, 
ParserConfigurationException,
-            TemplateModelException {
+    public void testWontWrapDOM() throws SAXException, IOException, 
ParserConfigurationException, TemplateException {
         DocumentBuilder db = 
DocumentBuilderFactory.newInstance().newDocumentBuilder();
         InputSource is = new InputSource();
         is.setCharacterStream(new StringReader("<doc><sub a='1' /></doc>"));
@@ -124,7 +123,7 @@ public class RestrictedObjectWrapperTest {
         try {
             sow.wrap(doc);
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsString("won't wrap"));
         }
     }
@@ -135,7 +134,7 @@ public class RestrictedObjectWrapperTest {
         try {
             sow.wrap(new File("/x"));
             fail();
-        } catch (TemplateModelException e) {
+        } catch (ObjectWrappingException e) {
             assertThat(e.getMessage(), containsString("won't wrap"));
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
index 241b349..d561ed4 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/model/impl/StaticModelsTest.java
@@ -24,11 +24,11 @@ import static org.junit.Assert.*;
 
 import org.apache.freemarker.core.Configuration;
 import org.apache.freemarker.core.NonTemplateCallPlace;
-import org.apache.freemarker.core.util.CallableUtils;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateHashModel;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
+import org.apache.freemarker.core.util.CallableUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -48,14 +48,14 @@ public class StaticModelsTest {
         try {
             s.get("x");
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertThat(e.getMessage(), containsString("No such key"));
         }
         
         try {
             statics.get("no.such.ClassExists");
             fail();
-        } catch (TemplateModelException e) {
+        } catch (TemplateException e) {
             assertTrue(e.getCause() instanceof ClassNotFoundException);
         }
         

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/CombinedMarkupOutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/CombinedMarkupOutputFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/CombinedMarkupOutputFormatTest.java
index 19e45de..5e77ee8 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/CombinedMarkupOutputFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/CombinedMarkupOutputFormatTest.java
@@ -23,7 +23,7 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.freemarker.core.model.TemplateModelException;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.outputformat.MarkupOutputFormat;
 import org.apache.freemarker.core.outputformat._OutputFormatTestAPI;
 import org.junit.Test; 
@@ -42,7 +42,7 @@ public class CombinedMarkupOutputFormatTest {
     }
     
     @Test
-    public void testOutputMO() throws TemplateModelException, IOException {
+    public void testOutputMO() throws TemplateException, IOException {
        StringWriter out = new StringWriter();
        
        HTML_RTF.output(HTML_RTF.fromMarkup("<pre>\\par Test "), out);
@@ -61,7 +61,7 @@ public class CombinedMarkupOutputFormatTest {
     }
 
     @Test
-    public void testOutputMO2() throws TemplateModelException, IOException {
+    public void testOutputMO2() throws TemplateException, IOException {
        StringWriter out = new StringWriter();
        
        XML_XML.output(XML_XML.fromMarkup("<pre>&lt;p&gt; Test "), out);
@@ -76,7 +76,7 @@ public class CombinedMarkupOutputFormatTest {
     }
 
     @Test
-    public void testOutputMO3() throws TemplateModelException, IOException {
+    public void testOutputMO3() throws TemplateException, IOException {
         MarkupOutputFormat outputFormat = new CombinedMarkupOutputFormat(
                 RTFOutputFormat.INSTANCE,
                 new CombinedMarkupOutputFormat(RTFOutputFormat.INSTANCE, 
RTFOutputFormat.INSTANCE));
@@ -92,7 +92,7 @@ public class CombinedMarkupOutputFormatTest {
     }
     
     @Test
-    public void testOutputString() throws TemplateModelException, IOException {
+    public void testOutputString() throws TemplateException, IOException {
         StringWriter out = new StringWriter();
         
         HTML_RTF.output("a", out);
@@ -103,7 +103,7 @@ public class CombinedMarkupOutputFormatTest {
     }
     
     @Test
-    public void testOutputString2() throws TemplateModelException, IOException 
{
+    public void testOutputString2() throws TemplateException, IOException {
         StringWriter out = new StringWriter();
         
         XML_XML.output("a", out);
@@ -114,7 +114,7 @@ public class CombinedMarkupOutputFormatTest {
     }
     
     @Test
-    public void testFromPlainTextByEscaping() throws TemplateModelException {
+    public void testFromPlainTextByEscaping() throws TemplateException {
         String plainText = "a\\b&c";
         TemplateCombinedMarkupOutputModel mo = 
HTML_RTF.fromPlainTextByEscaping(plainText);
         assertSame(plainText, _OutputFormatTestAPI.getPlainTextContent(mo));
@@ -122,7 +122,7 @@ public class CombinedMarkupOutputFormatTest {
     }
 
     @Test
-    public void testFromMarkup() throws TemplateModelException {
+    public void testFromMarkup() throws TemplateException {
         String markup = "a \\par <b>";
         TemplateCombinedMarkupOutputModel mo = HTML_RTF.fromMarkup(markup);
         assertSame(markup, _OutputFormatTestAPI.getMarkupContent(mo));
@@ -130,7 +130,7 @@ public class CombinedMarkupOutputFormatTest {
     }
     
     @Test
-    public void testGetMarkup() throws TemplateModelException {
+    public void testGetMarkup() throws TemplateException {
         {
             String markup = "a \\par <b>";
             TemplateCombinedMarkupOutputModel mo = HTML_RTF.fromMarkup(markup);
@@ -169,7 +169,7 @@ public class CombinedMarkupOutputFormatTest {
     }
     
     @Test
-    public void testEscaplePlainText() throws TemplateModelException {
+    public void testEscaplePlainText() throws TemplateException {
         assertEquals("", HTML_RTF.escapePlainText(""));
         assertEquals("a", HTML_RTF.escapePlainText("a"));
         assertEquals("\\{a\\\\b&amp;\\}", HTML_RTF.escapePlainText("{a\\b&}"));

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/HTMLOutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/HTMLOutputFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/HTMLOutputFormatTest.java
index 2199179..709ca1d 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/HTMLOutputFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/HTMLOutputFormatTest.java
@@ -24,7 +24,7 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.freemarker.core.model.TemplateModelException;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.outputformat.CommonMarkupOutputFormat;
 import org.apache.freemarker.core.outputformat._OutputFormatTestAPI;
 import org.junit.Test; 
@@ -35,7 +35,7 @@ import org.junit.Test;
 public class HTMLOutputFormatTest {
     
     @Test
-    public void testOutputMO() throws TemplateModelException, IOException {
+    public void testOutputMO() throws TemplateException, IOException {
        StringWriter out = new StringWriter();
        
        INSTANCE.output(INSTANCE.fromMarkup("<p>Test "), out);
@@ -57,7 +57,7 @@ public class HTMLOutputFormatTest {
     }
     
     @Test
-    public void testOutputString() throws TemplateModelException, IOException {
+    public void testOutputString() throws TemplateException, IOException {
         StringWriter out = new StringWriter();
         
         INSTANCE.output("a", out);
@@ -68,7 +68,7 @@ public class HTMLOutputFormatTest {
     }
     
     @Test
-    public void testFromPlainTextByEscaping() throws TemplateModelException {
+    public void testFromPlainTextByEscaping() throws TemplateException {
         String plainText = "a&b";
         TemplateHTMLOutputModel mo = 
INSTANCE.fromPlainTextByEscaping(plainText);
         assertSame(plainText, _OutputFormatTestAPI.getPlainTextContent(mo));
@@ -76,7 +76,7 @@ public class HTMLOutputFormatTest {
     }
 
     @Test
-    public void testFromMarkup() throws TemplateModelException {
+    public void testFromMarkup() throws TemplateException {
         String markup = "a&amp;b";
         TemplateHTMLOutputModel mo = INSTANCE.fromMarkup(markup);
         assertSame(markup, _OutputFormatTestAPI.getMarkupContent(mo));
@@ -84,7 +84,7 @@ public class HTMLOutputFormatTest {
     }
     
     @Test
-    public void testGetMarkup() throws TemplateModelException {
+    public void testGetMarkup() throws TemplateException {
         {
             String markup = "a&amp;b";
             TemplateHTMLOutputModel mo = INSTANCE.fromMarkup(markup);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/RTFOutputFormatTest.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/RTFOutputFormatTest.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/RTFOutputFormatTest.java
index 13563f5..69a0a41 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/RTFOutputFormatTest.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/outputformat/impl/RTFOutputFormatTest.java
@@ -24,14 +24,14 @@ import static org.junit.Assert.*;
 import java.io.IOException;
 import java.io.StringWriter;
 
-import org.apache.freemarker.core.model.TemplateModelException;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.outputformat._OutputFormatTestAPI;
 import org.junit.Test; 
 
 public class RTFOutputFormatTest {
     
     @Test
-    public void testOutputMO() throws TemplateModelException, IOException {
+    public void testOutputMO() throws TemplateException, IOException {
        StringWriter out = new StringWriter();
        
        INSTANCE.output(INSTANCE.fromMarkup("\\par Test "), out);
@@ -50,7 +50,7 @@ public class RTFOutputFormatTest {
     }
     
     @Test
-    public void testOutputString() throws TemplateModelException, IOException {
+    public void testOutputString() throws TemplateException, IOException {
         StringWriter out = new StringWriter();
         
         INSTANCE.output("a", out);
@@ -61,7 +61,7 @@ public class RTFOutputFormatTest {
     }
     
     @Test
-    public void testFromPlainTextByEscaping() throws TemplateModelException {
+    public void testFromPlainTextByEscaping() throws TemplateException {
         String plainText = "a\\b";
         TemplateRTFOutputModel mo = 
INSTANCE.fromPlainTextByEscaping(plainText);
         assertSame(plainText, _OutputFormatTestAPI.getPlainTextContent(mo));
@@ -69,7 +69,7 @@ public class RTFOutputFormatTest {
     }
 
     @Test
-    public void testFromMarkup() throws TemplateModelException {
+    public void testFromMarkup() throws TemplateException {
         String markup = "a \\par b";
         TemplateRTFOutputModel mo = INSTANCE.fromMarkup(markup);
         assertSame(markup, _OutputFormatTestAPI.getMarkupContent(mo));
@@ -77,7 +77,7 @@ public class RTFOutputFormatTest {
     }
     
     @Test
-    public void testGetMarkup() throws TemplateModelException {
+    public void testGetMarkup() throws TemplateException {
         {
             String markup = "a \\par b";
             TemplateRTFOutputModel mo = INSTANCE.fromMarkup(markup);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/AllTemplateModels.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/AllTemplateModels.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/AllTemplateModels.java
index efde933..61b937b 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/AllTemplateModels.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/AllTemplateModels.java
@@ -21,12 +21,12 @@ package org.apache.freemarker.core.templatesuite.models;
 
 import java.util.Date;
 
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
 import org.apache.freemarker.core.model.TemplateCollectionModel;
 import org.apache.freemarker.core.model.TemplateDateModel;
 import org.apache.freemarker.core.model.TemplateHashModelEx;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateModelIterator;
 import org.apache.freemarker.core.model.TemplateNumberModel;
 import org.apache.freemarker.core.model.TemplateScalarModel;
@@ -45,12 +45,12 @@ public class AllTemplateModels implements
     private final TemplateModelIterator EMPTY_ITERATOR = new 
TemplateModelIterator() {
 
         @Override
-        public TemplateModel next() throws TemplateModelException {
+        public TemplateModel next() throws TemplateException {
             return null;
         }
 
         @Override
-        public boolean hasNext() throws TemplateModelException {
+        public boolean hasNext() throws TemplateException {
             return false;
         }
         
@@ -59,53 +59,53 @@ public class AllTemplateModels implements
     private final TemplateCollectionModel EMPTY_COLLECTION = new 
TemplateCollectionModel() {
 
         @Override
-        public TemplateModelIterator iterator() throws TemplateModelException {
+        public TemplateModelIterator iterator() throws TemplateException {
             return EMPTY_ITERATOR;
         }
     };
     
     @Override
-    public TemplateModel get(String key) throws TemplateModelException {
+    public TemplateModel get(String key) throws TemplateException {
         return new SimpleScalar("value for key " + key);
     }
 
     @Override
-    public boolean isEmpty() throws TemplateModelException {
+    public boolean isEmpty() throws TemplateException {
         return true;
     }
 
     @Override
-    public TemplateModelIterator iterator() throws TemplateModelException {
+    public TemplateModelIterator iterator() throws TemplateException {
         return EMPTY_ITERATOR;
     }
 
     @Override
-    public TemplateModel get(int index) throws TemplateModelException {
+    public TemplateModel get(int index) throws TemplateException {
         return null;
     }
 
     @Override
-    public int size() throws TemplateModelException {
+    public int size() throws TemplateException {
         return 0;
     }
 
     @Override
-    public TemplateCollectionModel keys() throws TemplateModelException {
+    public TemplateCollectionModel keys() throws TemplateException {
         return EMPTY_COLLECTION;
     }
 
     @Override
-    public TemplateCollectionModel values() throws TemplateModelException {
+    public TemplateCollectionModel values() throws TemplateException {
         return EMPTY_COLLECTION;
     }
 
     @Override
-    public boolean getAsBoolean() throws TemplateModelException {
+    public boolean getAsBoolean() throws TemplateException {
         return true;
     }
 
     @Override
-    public Date getAsDate() throws TemplateModelException {
+    public Date getAsDate() throws TemplateException {
         return new Date(0);
     }
 
@@ -116,12 +116,12 @@ public class AllTemplateModels implements
 
     @Override
     @SuppressWarnings("boxing")
-    public Number getAsNumber() throws TemplateModelException {
+    public Number getAsNumber() throws TemplateException {
         return 1;
     }
 
     @Override
-    public String getAsString() throws TemplateModelException {
+    public String getAsString() throws TemplateException {
         return "s";
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndScalarModel.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndScalarModel.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndScalarModel.java
index 12e5f3d..340fe61 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndScalarModel.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndScalarModel.java
@@ -19,8 +19,8 @@
 
 package org.apache.freemarker.core.templatesuite.models;
 
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 
 public class BooleanAndScalarModel implements TemplateBooleanModel, 
TemplateScalarModel {
@@ -28,12 +28,12 @@ public class BooleanAndScalarModel implements 
TemplateBooleanModel, TemplateScal
     public static final BooleanAndScalarModel INSTANCE = new 
BooleanAndScalarModel();
 
     @Override
-    public String getAsString() throws TemplateModelException {
+    public String getAsString() throws TemplateException {
         return "s";
     }
 
     @Override
-    public boolean getAsBoolean() throws TemplateModelException {
+    public boolean getAsBoolean() throws TemplateException {
         return true;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndStringTemplateModel.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndStringTemplateModel.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndStringTemplateModel.java
index accf649..f424786 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndStringTemplateModel.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanAndStringTemplateModel.java
@@ -19,19 +19,19 @@
 
 package org.apache.freemarker.core.templatesuite.models;
 
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 
 public class BooleanAndStringTemplateModel implements TemplateBooleanModel, 
TemplateScalarModel {
 
     @Override
-    public String getAsString() throws TemplateModelException {
+    public String getAsString() throws TemplateException {
         return "theStringValue";
     }
 
     @Override
-    public boolean getAsBoolean() throws TemplateModelException {
+    public boolean getAsBoolean() throws TemplateException {
         return true;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList1.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList1.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList1.java
index 5022f68..8f3c3fd 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList1.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList1.java
@@ -19,10 +19,10 @@
 
 package org.apache.freemarker.core.templatesuite.models;
 
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ObjectWrapper;
 import org.apache.freemarker.core.model.TemplateBooleanModel;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
 import org.apache.freemarker.core.model.impl.SimpleSequence;
 
@@ -50,7 +50,7 @@ public class BooleanList1 implements TemplateSequenceModel {
      * @return the specified index in the list
      */
     @Override
-    public TemplateModel get(int i) throws TemplateModelException {
+    public TemplateModel get(int i) throws TemplateException {
         return cList.get(i);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList2.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList2.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList2.java
index 2d7667e..3911deb 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList2.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/BooleanList2.java
@@ -19,9 +19,9 @@
 
 package org.apache.freemarker.core.templatesuite.models;
 
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.ObjectWrapper;
 import org.apache.freemarker.core.model.TemplateModel;
-import org.apache.freemarker.core.model.TemplateModelException;
 import org.apache.freemarker.core.model.TemplateSequenceModel;
 import org.apache.freemarker.core.model.impl.SimpleSequence;
 
@@ -42,7 +42,7 @@ public class BooleanList2 implements TemplateSequenceModel {
      * @return the specified index in the list
      */
     @Override
-    public TemplateModel get(int i) throws TemplateModelException {
+    public TemplateModel get(int i) throws TemplateException {
         return cList.get(i);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/d73da6da/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/ExceptionModel.java
----------------------------------------------------------------------
diff --git 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/ExceptionModel.java
 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/ExceptionModel.java
index 940579a..445c95e 100644
--- 
a/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/ExceptionModel.java
+++ 
b/freemarker-core-test/src/test/java/org/apache/freemarker/core/templatesuite/models/ExceptionModel.java
@@ -19,7 +19,7 @@
 
 package org.apache.freemarker.core.templatesuite.models;
 
-import org.apache.freemarker.core.model.TemplateModelException;
+import org.apache.freemarker.core.TemplateException;
 import org.apache.freemarker.core.model.TemplateScalarModel;
 
 /**
@@ -33,7 +33,7 @@ public class ExceptionModel implements TemplateScalarModel {
      * @return the String value of this scalar.
      */
     @Override
-    public String getAsString () throws TemplateModelException {
-        throw new TemplateModelException( "Throwing from ExceptionModel!" );
+    public String getAsString () throws TemplateException {
+        throw new TemplateException( "Throwing from ExceptionModel!" );
     }
 }

Reply via email to