Date of release: 2006-03-11
This release was withdrawn because of a serious bug in it. Please don't use it! Of course, all new features of it are included in FreeMarker 2.3.6.
A few new features and several bugfixes.
Bug fixed:  Alternative syntax doesn't work for comments
Bug fixed: With the new square bracket syntax, the tag could be closed with
>. Now it can be closed with
Bug fixed: 
ftldirective if it wasn't in its own line
Bug fixed: 
evalbuilt-in fails with hash concatenation
tagSyntaxwas added. This determines the syntax of the templates (angle bracket syntax VS square bracket syntax) that has no
ftldirective in it. So now you can choose to use the new square bracket syntax by default. However, the recommended is to use auto-detection (
yourConfig.setTagSyntax(Configuration.AUTO_DETECT_TAG_SYNTAX)), because that will be the default starting from 2.4. Auto-detection chooses syntax based on the syntax of the first FreeMarker tag of the template (could be any FreeMarker tag, not just
ftl). Note that as with the previous version, if a the template uses
ftldirective, then the syntax of the
ftldirective determines the syntax of the template, and the
tagSyntaxsetting is ignored.
SimpleObjectWrappersupport lookup with 1 character long strings in
myHash["a"]) that use
Characterkeys. Simply, as a special case, when a hash lookup fails on a string that is 1 character long, it checks for the
Characterkey in the underlying map. (Bug tracker entry  FreeMarker doesn't support map lookup with Character keys.)
A new property,
strictwas added to
SimpleObjectWrapper. If this property is
truethen an attempt to read a bean propertly in the template (like
myBean.aProperty) that doesn't exist in the bean class (as opposed to just holding
nullvalue) will cause
InvalidPropertyException, which can't be suppressed in the template (not even with
myBean.noSuchProperty?default('something')). This way
?existsand similar built-ins can be used to handle existing properties whose value is
null, without the risk of hiding typos in the property names. Typos will always cause error. But mind you, it goes against the basic approach of FreeMarker, so use this feature only if you really know what are you doing.
Bug fixed: 
Bug fixed:  Division by zero in