You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2017/02/17 16:34:52 UTC

[1/4] incubator-freemarker git commit: Added missing @Override annotations (which were illegal on Java 5)

Repository: incubator-freemarker
Updated Branches:
  refs/heads/3 ac6626753 -> 4b680d205


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
index 2b482f5..9249b4f 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndScalarModel.java
@@ -27,10 +27,12 @@ public class BooleanAndScalarModel implements TemplateBooleanModel, TemplateScal
 
     public static final BooleanAndScalarModel INSTANCE = new BooleanAndScalarModel();
 
+    @Override
     public String getAsString() throws TemplateModelException {
         return "s";
     }
 
+    @Override
     public boolean getAsBoolean() throws TemplateModelException {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
index 6e539fe..3bf4733 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanAndStringTemplateModel.java
@@ -25,10 +25,12 @@ import org.apache.freemarker.core.model.TemplateScalarModel;
 
 public class BooleanAndStringTemplateModel implements TemplateBooleanModel, TemplateScalarModel {
 
+    @Override
     public String getAsString() throws TemplateModelException {
         return "theStringValue";
     }
 
+    @Override
     public boolean getAsBoolean() throws TemplateModelException {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
index 7b5872d..f51ff81 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash1.java
@@ -37,6 +37,7 @@ public class BooleanHash1 implements TemplateHashModel {
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) {
         if ( key.equals( "temp" )) {
             return new SimpleScalar( "Hello, world." );
@@ -50,6 +51,7 @@ public class BooleanHash1 implements TemplateHashModel {
     /**
      * @return true if this object is empty.
      */
+    @Override
     public boolean isEmpty() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
index 66c17d5..a49f073 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanHash2.java
@@ -35,6 +35,7 @@ public class BooleanHash2 implements TemplateHashModel {
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) {
         return null;
     }
@@ -42,6 +43,7 @@ public class BooleanHash2 implements TemplateHashModel {
     /**
      * @return true if this object is empty.
      */
+    @Override
     public boolean isEmpty() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
index 067b265..048a9d7 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList1.java
@@ -68,6 +68,7 @@ public class BooleanList1 implements TemplateSequenceModel {
     /**
      * @return the specified index in the list
      */
+    @Override
     public TemplateModel get(int i) throws TemplateModelException {
         return cList.get(i);
     }
@@ -79,6 +80,7 @@ public class BooleanList1 implements TemplateSequenceModel {
         cList.rewind();
     }
 
+    @Override
     public int size() {
         return cList.size();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
index a4b8891..b68bb9f 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/BooleanList2.java
@@ -39,10 +39,12 @@ public class BooleanList2 implements TemplateSequenceModel {
     /**
      * @return the specified index in the list
      */
+    @Override
     public TemplateModel get(int i) throws TemplateModelException {
         return cList.get(i);
     }
 
+    @Override
     public int size() {
         return cList.size();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
index bcb5645..d75e968 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/ExceptionModel.java
@@ -32,6 +32,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!" );
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
index e9b1cbb..c4559a3 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/HashAndScalarModel.java
@@ -33,13 +33,16 @@ public class HashAndScalarModel implements TemplateHashModelEx, TemplateScalarMo
     
     private final TemplateCollectionModel EMPTY_COLLECTION = new TemplateCollectionModel() {
 
+        @Override
         public TemplateModelIterator iterator() throws TemplateModelException {
             return new TemplateModelIterator() {
 
+                @Override
                 public TemplateModel next() throws TemplateModelException {
                     return null;
                 }
 
+                @Override
                 public boolean hasNext() throws TemplateModelException {
                     return false;
                 }
@@ -48,26 +51,32 @@ public class HashAndScalarModel implements TemplateHashModelEx, TemplateScalarMo
         }
     };
 
+    @Override
     public String getAsString() throws TemplateModelException {
         return "scalarValue";
     }
 
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         return new SimpleScalar("mapValue for " + key);
     }
 
+    @Override
     public boolean isEmpty() throws TemplateModelException {
         return true;
     }
 
+    @Override
     public int size() throws TemplateModelException {
         return 0;
     }
 
+    @Override
     public TemplateCollectionModel keys() throws TemplateModelException {
         return EMPTY_COLLECTION;
     }
 
+    @Override
     public TemplateCollectionModel values() throws TemplateModelException {
         return EMPTY_COLLECTION;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
index 9d7aec1..6e4ffbf 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/Listables.java
@@ -164,22 +164,27 @@ public class Listables {
             this.map = map;
         }
         
+        @Override
         public TemplateModel get(String key) throws TemplateModelException {
             return wrap(map.get(key));
         }
         
+        @Override
         public boolean isEmpty() {
             return map.isEmpty();
         }
         
+        @Override
         public int size() {
             return map.size();
         }
         
+        @Override
         public TemplateCollectionModel keys() {
             return new SimpleCollection(map.keySet(), getObjectWrapper());
         }
         
+        @Override
         public TemplateCollectionModel values() {
             return new SimpleCollection(map.values(), getObjectWrapper());
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
index d7d72d4..8b7517a 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel1.java
@@ -57,6 +57,7 @@ public class MultiModel1 implements TemplateHashModel,
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) {
         if ( key.equals( "model2" )) {
             return m_cSubModel;
@@ -80,6 +81,7 @@ public class MultiModel1 implements TemplateHashModel,
     /**
      * @return true if this object is empty.
      */
+    @Override
     public boolean isEmpty() {
         return false;
     }
@@ -87,6 +89,7 @@ public class MultiModel1 implements TemplateHashModel,
     /**
      * @return the specified index in the list
      */
+    @Override
     public TemplateModel get(int i) throws TemplateModelException {
         return m_cListModel.get( i );
     }
@@ -96,10 +99,12 @@ public class MultiModel1 implements TemplateHashModel,
      *
      * @return the String value of this scalar.
      */
+    @Override
     public String getAsString() {
         return "MultiModel1 as a string!";
     }
 
+    @Override
     public int size() throws TemplateModelException {
         return m_cListModel.size();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
index 5f5b936..bb4ef1c 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel2.java
@@ -36,6 +36,7 @@ public class MultiModel2 implements TemplateScalarModel, TemplateMethodModel {
      *
      * @return the String value of this scalar.
      */
+    @Override
     public String getAsString() {
         return "Model2 is alive!";
     }
@@ -47,6 +48,7 @@ public class MultiModel2 implements TemplateScalarModel, TemplateMethodModel {
      * of the arguments passed to the method.
      * @return the <tt>TemplateModel</tt> produced by the method, or null.
      */
+    @Override
     public Object exec(List arguments) {
         StringBuilder  aResults = new StringBuilder( "Arguments are:<br />" );
         Iterator    iList = arguments.iterator();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
index 98b55d9..ac882c6 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel3.java
@@ -34,6 +34,7 @@ public class MultiModel3 implements TemplateScalarModel, TemplateHashModel {
      *
      * @return the String value of this scalar.
      */
+    @Override
     public String getAsString() {
         return "Model3 is alive!";
     }
@@ -41,6 +42,7 @@ public class MultiModel3 implements TemplateScalarModel, TemplateHashModel {
     /**
      * @return true if this object is empty.
      */
+    @Override
     public boolean isEmpty() {
         return false;
     }
@@ -53,6 +55,7 @@ public class MultiModel3 implements TemplateScalarModel, TemplateHashModel {
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) {
         if ( key.equals( "selftest" )) {
             return new SimpleScalar( "Selftest from MultiModel3!" );

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
index 64cee4f..fd5968c 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel4.java
@@ -35,6 +35,7 @@ public class MultiModel4 implements TemplateSequenceModel, TemplateHashModel {
     /**
      * @return the specified index in the list
      */
+    @Override
     public TemplateModel get(int i) throws TemplateModelException {
         return m_cList.get( i );
     }
@@ -47,6 +48,7 @@ public class MultiModel4 implements TemplateSequenceModel, TemplateHashModel {
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) {
         if ( key.equals( "size" )) {
             return new SimpleScalar( "Key size, not the listSize method." );
@@ -56,10 +58,12 @@ public class MultiModel4 implements TemplateSequenceModel, TemplateHashModel {
     }
 
 
+    @Override
     public int size() {
         return m_cList.size();
     }
 
+    @Override
     public boolean isEmpty() {
         return size() == 0;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
index 8b2e7fe..c71f843 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/MultiModel5.java
@@ -40,6 +40,7 @@ public class MultiModel5 implements TemplateSequenceModel, TemplateHashModel {
     /**
      * @return the specified index in the list
      */
+    @Override
     public TemplateModel get(int i) throws TemplateModelException {
         return m_cList.get( i );
     }
@@ -47,10 +48,12 @@ public class MultiModel5 implements TemplateSequenceModel, TemplateHashModel {
     /**
      * @return true if this object is empty.
      */
+    @Override
     public boolean isEmpty() {
         return false;
     }
 
+    @Override
     public int size() {
         return m_cList.size();
     }
@@ -63,6 +66,7 @@ public class MultiModel5 implements TemplateSequenceModel, TemplateHashModel {
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) {
         if ( key.equals( "empty" )) {
             return new SimpleScalar( "Dummy hash value, for test purposes." );

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
index 4d0e6b5..ec3c34e 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel.java
@@ -45,6 +45,7 @@ implements
         string = o1 + ":" + o2;
     }
 
+    @Override
     public String getAsString() {
         return string;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
index 663fca7..e8a6c32 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/NewTestModel2.java
@@ -45,6 +45,7 @@ implements
         string = o1 + ":" + o2;
     }
 
+    @Override
     public String getAsString() {
         return string;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
index 52bd888..e329aea 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/NumberAndStringModel.java
@@ -33,11 +33,13 @@ public class NumberAndStringModel implements TemplateNumberModel,
 		this.s = s;
 	}
 
-	public String getAsString() throws TemplateModelException {
+	@Override
+    public String getAsString() throws TemplateModelException {
 		return s;
 	}
 
-	@SuppressWarnings("boxing")
+	@Override
+    @SuppressWarnings("boxing")
     public Number getAsNumber() throws TemplateModelException {
 		return s.length();
 	}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
index be6a826..08af655 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedConstructor.java
@@ -38,6 +38,7 @@ public class OverloadedConstructor implements TemplateScalarModel {
         value = "CharSequence " + s;
     }
     
+    @Override
     public String getAsString() throws TemplateModelException {
         return value;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods2.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods2.java
index c89e54a..b023e6b 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods2.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/OverloadedMethods2.java
@@ -1015,6 +1015,7 @@ public class OverloadedMethods2 {
     
     private static class MyAdapterNumberModel implements TemplateNumberModel, AdapterTemplateModel {
 
+        @Override
         public Object getAdaptedObject(Class hint) {
             if (hint == double.class) {
                 return Double.valueOf(123.0001);
@@ -1025,6 +1026,7 @@ public class OverloadedMethods2 {
             }
         }
 
+        @Override
         public Number getAsNumber() throws TemplateModelException {
             return Integer.valueOf(122);
         }
@@ -1033,10 +1035,12 @@ public class OverloadedMethods2 {
     
     private static class MyWrapperNumberModel implements TemplateNumberModel, WrapperTemplateModel {
 
+        @Override
         public Number getAsNumber() throws TemplateModelException {
             return Integer.valueOf(122);
         }
 
+        @Override
         public Object getWrappedObject() {
             return Double.valueOf(123.0001);
         }
@@ -1045,10 +1049,12 @@ public class OverloadedMethods2 {
     
     private static class MyStringWrapperAsBooleanModel implements TemplateBooleanModel, WrapperTemplateModel {
 
+        @Override
         public Object getWrappedObject() {
             return "yes";
         }
 
+        @Override
         public boolean getAsBoolean() throws TemplateModelException {
             return true;
         }
@@ -1057,10 +1063,12 @@ public class OverloadedMethods2 {
 
     private static class MyBooleanWrapperAsAnotherBooleanModel implements TemplateBooleanModel, WrapperTemplateModel {
 
+        @Override
         public Object getWrappedObject() {
             return Boolean.TRUE;
         }
 
+        @Override
         public boolean getAsBoolean() throws TemplateModelException {
             return false;
         }
@@ -1069,6 +1077,7 @@ public class OverloadedMethods2 {
     
     private static class MyStringAdaptedToBooleanModel implements TemplateBooleanModel, AdapterTemplateModel {
 
+        @Override
         public Object getAdaptedObject(Class hint) {
             if (hint != Boolean.class && hint != boolean.class) {
                 return "yes";
@@ -1077,6 +1086,7 @@ public class OverloadedMethods2 {
             }
         }
 
+        @Override
         public boolean getAsBoolean() throws TemplateModelException {
             return false;
         }
@@ -1085,10 +1095,12 @@ public class OverloadedMethods2 {
 
     private static class MyStringAdaptedToBooleanModel2 implements TemplateBooleanModel, AdapterTemplateModel {
 
+        @Override
         public Object getAdaptedObject(Class hint) {
             return "yes";
         }
 
+        @Override
         public boolean getAsBoolean() throws TemplateModelException {
             return true;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/SimpleTestMethod.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/SimpleTestMethod.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/SimpleTestMethod.java
index 289350f..e6ea9f0 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/SimpleTestMethod.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/SimpleTestMethod.java
@@ -36,6 +36,7 @@ public class SimpleTestMethod implements TemplateMethodModel {
      * the values of the arguments passed to the method.
      * @return the <tt>TemplateModel</tt> produced by the method, or null.
      */
+    @Override
     public Object exec(List arguments) {
         if ( arguments.size() == 0 ) {
             return new SimpleScalar( "Empty list provided" );

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformHashWrapper.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformHashWrapper.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformHashWrapper.java
index 038d3c5..fbea7cf 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformHashWrapper.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformHashWrapper.java
@@ -51,6 +51,7 @@ public class TransformHashWrapper implements TemplateHashModel,
      * @return the <tt>TemplateModel</tt> referred to by the key,
      * or null if not found.
      */
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         return m_cHashModel.get( key );
     }
@@ -58,6 +59,7 @@ public class TransformHashWrapper implements TemplateHashModel,
     /**
      * @return true if this object is empty.
      */
+    @Override
     public boolean isEmpty() {
         return false;
     }
@@ -66,6 +68,7 @@ public class TransformHashWrapper implements TemplateHashModel,
      * Returns the scalar's value as a String.
      * @return the String value of this scalar.
      */
+    @Override
     public String getAsString() {
         return "Utility transformations";
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper1.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper1.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper1.java
index a77f245..a18f83a 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper1.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper1.java
@@ -37,6 +37,7 @@ public class TransformMethodWrapper1 extends Object implements TemplateMethodMod
      * the values of the arguments passed to the method.
      * @return the <tt>TemplateModel</tt> produced by the method, or null.
      */
+    @Override
     public Object exec(List arguments) {
 
         if (( arguments.size() > 0 ) && ( arguments.get( 0 ).toString().equals( "xml" ))) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper2.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper2.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper2.java
index 6da5dd7..7fae781 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper2.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformMethodWrapper2.java
@@ -36,6 +36,7 @@ public class TransformMethodWrapper2 implements TemplateMethodModel {
      * the values of the arguments passed to the method.
      * @return the <tt>TemplateModel</tt> produced by the method, or null.
      */
+    @Override
     public Object exec(List arguments) {
         TransformModel1 cTransformer = new TransformModel1();
         Iterator    iArgument = arguments.iterator();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformModel1.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformModel1.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformModel1.java
index 585dd15..0a7c2c5 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformModel1.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/TransformModel1.java
@@ -42,7 +42,8 @@ public class TransformModel1 implements TemplateTransformModel {
 
     private static final int READER_BUFFER_SIZE = 4096;
 
-    public Writer getWriter(final Writer out, 
+    @Override
+    public Writer getWriter(final Writer out,
                             final Map args) {
         final StringBuilder buf = new StringBuilder();
         return new Writer(out) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/util/AssertDirective.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/util/AssertDirective.java b/src/test/java/org/apache/freemarker/test/util/AssertDirective.java
index 21eae28..9c9ded3 100644
--- a/src/test/java/org/apache/freemarker/test/util/AssertDirective.java
+++ b/src/test/java/org/apache/freemarker/test/util/AssertDirective.java
@@ -39,6 +39,7 @@ public class AssertDirective implements TemplateDirectiveModel {
     
     private AssertDirective() { }
     
+    @Override
     public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
             throws TemplateException, IOException {
         TemplateModel test = null;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/util/AssertEqualsDirective.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/util/AssertEqualsDirective.java b/src/test/java/org/apache/freemarker/test/util/AssertEqualsDirective.java
index 6db7315..3f2d0ed 100644
--- a/src/test/java/org/apache/freemarker/test/util/AssertEqualsDirective.java
+++ b/src/test/java/org/apache/freemarker/test/util/AssertEqualsDirective.java
@@ -44,6 +44,7 @@ public class AssertEqualsDirective implements TemplateDirectiveModel {
 
     private AssertEqualsDirective() { }
     
+    @Override
     public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
             throws TemplateException, IOException {
         TemplateModel actual = null;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/util/AssertFailsDirective.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/util/AssertFailsDirective.java b/src/test/java/org/apache/freemarker/test/util/AssertFailsDirective.java
index 6fba620..0565d4c 100644
--- a/src/test/java/org/apache/freemarker/test/util/AssertFailsDirective.java
+++ b/src/test/java/org/apache/freemarker/test/util/AssertFailsDirective.java
@@ -45,6 +45,7 @@ public class AssertFailsDirective implements TemplateDirectiveModel {
     
     private AssertFailsDirective() { }
 
+    @Override
     public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
             throws TemplateException, IOException {
         String message = null;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/util/NoOutputDirective.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/util/NoOutputDirective.java b/src/test/java/org/apache/freemarker/test/util/NoOutputDirective.java
index 9e047ab..7eacc1f 100644
--- a/src/test/java/org/apache/freemarker/test/util/NoOutputDirective.java
+++ b/src/test/java/org/apache/freemarker/test/util/NoOutputDirective.java
@@ -38,6 +38,7 @@ public class NoOutputDirective implements TemplateDirectiveModel {
         //
     }
 
+    @Override
     public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
             throws TemplateException, IOException {
         if (!params.isEmpty()) {


[4/4] incubator-freemarker git commit: Replaced some old style for loops with foreach (mostly just for arrays)

Posted by dd...@apache.org.
Replaced some old style for loops with foreach (mostly just for arrays)


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

Branch: refs/heads/3
Commit: 4b680d2058c89396e4691b4496baf24a420cb5ee
Parents: 693a94c
Author: ddekany <dd...@apache.org>
Authored: Fri Feb 17 17:34:46 2017 +0100
Committer: ddekany <dd...@apache.org>
Committed: Fri Feb 17 17:34:46 2017 +0100

----------------------------------------------------------------------
 .../apache/freemarker/core/Configuration.java   |   9 +-
 .../org/apache/freemarker/core/ast/BuiltIn.java |   9 +-
 .../freemarker/core/ast/BuiltinVariable.java    |  11 +-
 .../freemarker/core/ast/Configurable.java       |  50 ++++----
 .../apache/freemarker/core/ast/Environment.java |  10 +-
 .../core/ast/OptInTemplateClassResolver.java    |   6 +-
 .../freemarker/core/ast/ParseException.java     | 113 +++++++++----------
 .../freemarker/core/ast/PropertySetting.java    |  15 ++-
 .../apache/freemarker/core/ast/TextBlock.java   |   3 +-
 .../core/ast/_ErrorDescriptionBuilder.java      |  15 ++-
 .../ast/_ObjectBuilderSettingEvaluator.java     |   3 +-
 .../core/model/impl/beans/ArgumentTypes.java    |   4 +-
 .../core/model/impl/beans/BeansWrapper.java     |   3 +-
 .../model/impl/beans/ClassIntrospector.java     |  17 ++-
 .../core/model/impl/beans/StaticModel.java      |  11 +-
 .../core/model/impl/beans/_BeansAPI.java        |   4 +-
 .../core/model/impl/beans/_EnumModels.java      |   4 +-
 .../core/model/impl/beans/_MethodUtil.java      |   4 +-
 .../core/model/impl/dom/NodeListModel.java      |   3 +-
 .../core/model/impl/dom/NodeModel.java          |  13 +--
 .../impl/FileTemplateLoader.java                |   3 +-
 .../freemarker/core/util/_StringUtil.java       |  11 +-
 .../freemarker/servlet/jsp/JspTagModelBase.java |   3 +-
 .../freemarker/servlet/jsp/TaglibFactory.java   |   3 +-
 .../core/model/impl/beans/TypeFlagsTest.java    |   4 +-
 .../servlet/jsp/TaglibMethodUtilTest.java       |   4 +-
 26 files changed, 154 insertions(+), 181 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/Configuration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/Configuration.java b/src/main/java/org/apache/freemarker/core/Configuration.java
index 94026ec..73350b6 100644
--- a/src/main/java/org/apache/freemarker/core/Configuration.java
+++ b/src/main/java/org/apache/freemarker/core/Configuration.java
@@ -529,7 +529,7 @@ public class Configuration extends Configurable implements Cloneable, ParserConf
      * and {@link #setObjectWrapper(ObjectWrapper)}. When the user configures FreeMarker from Spring XML, he has no
      * control over the order, so it has to work on both ways.
      */
-    private HashMap/*<String, Object>*/ rewrappableSharedVariables = null;
+    private HashMap<String, Object> rewrappableSharedVariables = null;
     
     private String defaultEncoding = _SecurityUtil.getSystemProperty("file.encoding", "utf-8");
     private ConcurrentMap localeToCharsetMap = new ConcurrentHashMap();
@@ -2622,11 +2622,10 @@ public class Configuration extends Configurable implements Cloneable, ParserConf
 
     private void setSharedVariablesFromRewrappableSharedVariables() throws TemplateModelException {
         if (rewrappableSharedVariables == null) return;
-        for (Iterator it = rewrappableSharedVariables.entrySet().iterator(); it.hasNext(); ) {
-            Map.Entry/*<String, Object>*/ ent = (Entry) it.next();
-            String name = (String) ent.getKey();
+        for (Entry<String, Object> ent : rewrappableSharedVariables.entrySet()) {
+            String name = ent.getKey();
             Object value = ent.getValue();
-            
+
             TemplateModel valueAsTM;
             if (value instanceof TemplateModel) {
                 valueAsTM = (TemplateModel) value;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/BuiltIn.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltIn.java b/src/main/java/org/apache/freemarker/core/ast/BuiltIn.java
index 4845198..c48ebca 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltIn.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltIn.java
@@ -325,7 +325,7 @@ abstract class BuiltIn extends Expression implements Cloneable {
                     "Help (latest version): http://freemarker.org/docs/ref_builtins.html; "
                     + "you're using FreeMarker ").append(Configuration.getVersion()).append(".\n" 
                     + "The alphabetical list of built-ins:");
-            List names = new ArrayList(BUILT_INS_BY_NAME.keySet().size());
+            List<String> names = new ArrayList<>(BUILT_INS_BY_NAME.keySet().size());
             names.addAll(BUILT_INS_BY_NAME.keySet());
             Collections.sort(names);
             char lastLetter = 0;
@@ -338,10 +338,9 @@ abstract class BuiltIn extends Expression implements Cloneable {
             }
             
             boolean first = true;
-            for (Iterator it = names.iterator(); it.hasNext(); ) {
-                String correctName = (String) it.next();
+            for (String correctName : names) {
                 int correctNameNamingConvetion = _StringUtil.getIdentifierNamingConvention(correctName);
-                if (shownNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION 
+                if (shownNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION
                         ? correctNameNamingConvetion != Configuration.LEGACY_NAMING_CONVENTION
                         : correctNameNamingConvetion != Configuration.CAMEL_CASE_NAMING_CONVENTION) {
                     if (first) {
@@ -349,7 +348,7 @@ abstract class BuiltIn extends Expression implements Cloneable {
                     } else {
                         buf.append(", ");
                     }
-                    
+
                     char firstChar = correctName.charAt(0);
                     if (firstChar != lastLetter) {
                         lastLetter = firstChar;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java b/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
index 2504cfb..4781b05 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
@@ -148,12 +148,11 @@ final class BuiltinVariable extends Expression {
             
             sb.append("\nThe allowed special variable names are: ");
             boolean first = true;
-            for (int i = 0; i < SPEC_VAR_NAMES.length; i++) {
-                final String correctName = SPEC_VAR_NAMES[i];
-                int correctNameNamingConvetion = _StringUtil.getIdentifierNamingConvention(correctName);
-                if (shownNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION 
-                        ? correctNameNamingConvetion != Configuration.LEGACY_NAMING_CONVENTION
-                        : correctNameNamingConvetion != Configuration.CAMEL_CASE_NAMING_CONVENTION) {
+            for (final String correctName : SPEC_VAR_NAMES) {
+                int correctNameNamingConvention = _StringUtil.getIdentifierNamingConvention(correctName);
+                if (shownNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION
+                        ? correctNameNamingConvention != Configuration.LEGACY_NAMING_CONVENTION
+                        : correctNameNamingConvention != Configuration.CAMEL_CASE_NAMING_CONVENTION) {
                     if (first) {
                         first = false;
                     } else {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/Configurable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/Configurable.java b/src/main/java/org/apache/freemarker/core/ast/Configurable.java
index ad73956..d481944 100644
--- a/src/main/java/org/apache/freemarker/core/ast/Configurable.java
+++ b/src/main/java/org/apache/freemarker/core/ast/Configurable.java
@@ -2369,22 +2369,21 @@ public class Configurable {
                 } else if ("allows_nothing".equals(value) || "allowsNothing".equals(value)) {
                     setNewBuiltinClassResolver(TemplateClassResolver.ALLOWS_NOTHING_RESOLVER);
                 } else if (value.indexOf(":") != -1) {
-                    List segments = parseAsSegmentedList(value);
+                    List<KeyValuePair<List<String>>> segments = parseAsSegmentedList(value);
                     Set allowedClasses = null;
-                    List trustedTemplates = null;
-                    for (int i = 0; i < segments.size(); i++) {
-                        KeyValuePair kv = (KeyValuePair) segments.get(i);
-                        String segmentKey = (String) kv.getKey();
-                        List segmentValue = (List) kv.getValue();
+                    List<String> trustedTemplates = null;
+                    for (KeyValuePair<List<String>> segment : segments) {
+                        String segmentKey = segment.getKey();
+                        List<String> segmentValue = segment.getValue();
                         if (segmentKey.equals(ALLOWED_CLASSES)) {
-                            allowedClasses = new HashSet(segmentValue); 
+                            allowedClasses = new HashSet(segmentValue);
                         } else if (segmentKey.equals(TRUSTED_TEMPLATES)) {
                             trustedTemplates = segmentValue;
                         } else {
                             throw new ParseException(
                                     "Unrecognized list segment key: " + _StringUtil.jQuote(segmentKey) +
-                                    ". Supported keys are: \"" + ALLOWED_CLASSES + "\", \"" +
-                                    TRUSTED_TEMPLATES + "\"", 0, 0);
+                                            ". Supported keys are: \"" + ALLOWED_CLASSES + "\", \"" +
+                                            TRUSTED_TEMPLATES + "\"", 0, 0);
                         }
                     }
                     setNewBuiltinClassResolver(
@@ -2581,9 +2580,8 @@ public class Configurable {
     public void setSettings(Properties props) throws TemplateException {
         final _SettingEvaluationEnvironment prevEnv = _SettingEvaluationEnvironment.startScope();
         try {
-            for (Iterator it = props.keySet().iterator(); it.hasNext(); ) {
-                String key = (String) it.next();
-                setSetting(key, props.getProperty(key).trim()); 
+            for (String key : props.stringPropertyNames()) {
+                setSetting(key, props.getProperty(key).trim());
             }
         } finally {
             _SettingEvaluationEnvironment.endScope(prevEnv);
@@ -2745,11 +2743,11 @@ public class Configurable {
         if (parent != null) parent.doAutoImportsAndIncludes(env);
     }
 
-    protected ArrayList parseAsList(String text) throws ParseException {
+    protected List<String> parseAsList(String text) throws ParseException {
         return new SettingStringParser(text).parseAsList();
     }
 
-    protected ArrayList parseAsSegmentedList(String text)
+    protected List<KeyValuePair<List<String>>> parseAsSegmentedList(String text)
     throws ParseException {
         return new SettingStringParser(text).parseAsSegmentedList();
     }
@@ -2758,20 +2756,20 @@ public class Configurable {
         return new SettingStringParser(text).parseAsImportList();
     }
     
-    private static class KeyValuePair {
-        private final Object key;
-        private final Object value;
+    private static class KeyValuePair<V> {
+        private final String key;
+        private final V value;
         
-        KeyValuePair(Object key, Object value) {
+        KeyValuePair(String key, V value) {
             this.key = key;
             this.value = value;
         }
-        
-        Object getKey() {
+
+        String getKey() {
             return key;
         }
-        
-        Object getValue() {
+
+        V getValue() {
             return value;
         }
     }
@@ -2790,9 +2788,9 @@ public class Configurable {
             this.ln = text.length();
         }
 
-        ArrayList parseAsSegmentedList() throws ParseException {
-            ArrayList segments = new ArrayList();
-            ArrayList currentSegment = null;
+        List<KeyValuePair<List<String>>> parseAsSegmentedList() throws ParseException {
+            List<KeyValuePair<List<String>>> segments = new ArrayList();
+            List<String> currentSegment = null;
             
             char c;
             while (true) {
@@ -2803,7 +2801,7 @@ public class Configurable {
                 
                 if (c == ':') {
                     currentSegment = new ArrayList();
-                    segments.add(new KeyValuePair(item, currentSegment));
+                    segments.add(new KeyValuePair<List<String>>(item, currentSegment));
                 } else {
                     if (currentSegment == null) {
                         throw new ParseException(

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/Environment.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/Environment.java b/src/main/java/org/apache/freemarker/core/ast/Environment.java
index 8f473af..fcafa66 100644
--- a/src/main/java/org/apache/freemarker/core/ast/Environment.java
+++ b/src/main/java/org/apache/freemarker/core/ast/Environment.java
@@ -34,7 +34,6 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.IdentityHashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -71,11 +70,11 @@ import org.apache.freemarker.core.templateresolver.TemplateResolver;
 import org.apache.freemarker.core.templateresolver._CacheAPI;
 import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateNameFormat;
 import org.apache.freemarker.core.templateresolver.impl.DefaultTemplateNameFormatFM2;
+import org.apache.freemarker.core.util.UndeclaredThrowableException;
 import org.apache.freemarker.core.util._DateUtil;
 import org.apache.freemarker.core.util._DateUtil.DateToISO8601CalendarFactory;
 import org.apache.freemarker.core.util._NullWriter;
 import org.apache.freemarker.core.util._StringUtil;
-import org.apache.freemarker.core.util.UndeclaredThrowableException;
 import org.slf4j.Logger;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -749,8 +748,7 @@ public final class Environment extends Configurable {
                 catchAllParamValue = null;
             }
 
-            for (Iterator it = namedArgs.entrySet().iterator(); it.hasNext();) {
-                final Map.Entry argNameAndValExp = (Map.Entry) it.next();
+             for (Map.Entry argNameAndValExp : (Set<Map.Entry>) namedArgs.entrySet()) {
                 final String argName = (String) argNameAndValExp.getKey();
                 final boolean isArgNameDeclared = macro.hasArgNamed(argName);
                 if (isArgNameDeclared || catchAllParamName != null) {
@@ -2721,8 +2719,8 @@ public final class Environment extends Configurable {
     }
 
     void importMacros(Template template) {
-        for (Iterator it = template.getMacros().values().iterator(); it.hasNext();) {
-            visitMacroDef((Macro) it.next());
+        for (Object macro : template.getMacros().values()) {
+            visitMacroDef((Macro) macro);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/OptInTemplateClassResolver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/OptInTemplateClassResolver.java b/src/main/java/org/apache/freemarker/core/ast/OptInTemplateClassResolver.java
index 41aa62d..eaa6adf 100644
--- a/src/main/java/org/apache/freemarker/core/ast/OptInTemplateClassResolver.java
+++ b/src/main/java/org/apache/freemarker/core/ast/OptInTemplateClassResolver.java
@@ -66,15 +66,15 @@ public class OptInTemplateClassResolver implements TemplateClassResolver {
      *     This parameter can be <code>null</code> (means no trusted templates).
      */
     public OptInTemplateClassResolver(
-            Set allowedClasses, List trustedTemplates) {
+            Set allowedClasses, List<String> trustedTemplates) {
         this.allowedClasses = allowedClasses != null ? allowedClasses : Collections.EMPTY_SET;
         if (trustedTemplates != null) {
             trustedTemplateNames = new HashSet();
             trustedTemplatePrefixes = new ArrayList();
             
-            Iterator it = trustedTemplates.iterator();
+            Iterator<String> it = trustedTemplates.iterator();
             while (it.hasNext()) {
-                String li = (String) it.next();
+                String li = it.next();
                 if (li.startsWith("/")) li = li.substring(1);
                 if (li.endsWith("*")) {
                     trustedTemplatePrefixes.add(li.substring(0, li.length() - 1));

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/ParseException.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/ParseException.java b/src/main/java/org/apache/freemarker/core/ast/ParseException.java
index 620fbe0..26ba8e4 100644
--- a/src/main/java/org/apache/freemarker/core/ast/ParseException.java
+++ b/src/main/java/org/apache/freemarker/core/ast/ParseException.java
@@ -422,63 +422,62 @@ public class ParseException extends IOException implements FMParserConstants {
         final int kind = nextToken.kind;
         if (kind == EOF) {
             Set/*<String>*/ endNames = new HashSet();
-            for (int i = 0; i < expectedTokenSequences.length; i++) {
-                int[] sequence = expectedTokenSequences[i];
-                for (int j = 0; j < sequence.length; j++) {
-                    switch (sequence[j]) {
-                    case END_FOREACH:
-                        endNames.add( "#foreach");
-                        break;
-                    case END_LIST:
-                        endNames.add( "#list");
-                        break;
-                    case END_SWITCH:
-                        endNames.add( "#switch");
-                        break;
-                    case END_IF:
-                        endNames.add( "#if");
-                        break;
-                    case END_COMPRESS:
-                        endNames.add( "#compress");
-                        break;
-                    case END_MACRO:
-                        endNames.add( "#macro");
-                    case END_FUNCTION:
-                        endNames.add( "#function");
-                        break;
-                    case END_TRANSFORM:
-                        endNames.add( "#transform");
-                        break;
-                    case END_ESCAPE:
-                        endNames.add( "#escape");
-                        break;
-                    case END_NOESCAPE:
-                        endNames.add( "#noescape");
-                        break;
-                    case END_ASSIGN:
-                        endNames.add( "#assign");
-                        break;
-                    case END_LOCAL:
-                        endNames.add( "#local");
-                        break;
-                    case END_GLOBAL:
-                        endNames.add( "#global");
-                        break;
-                    case END_ATTEMPT:
-                        endNames.add( "#attempt");
-                        break;
-                    case CLOSING_CURLY_BRACKET:
-                        endNames.add( "\"{\"");
-                        break;
-                    case CLOSE_BRACKET:
-                        endNames.add( "\"[\"");
-                        break;
-                    case CLOSE_PAREN:
-                        endNames.add( "\"(\"");
-                        break;
-                    case UNIFIED_CALL_END:
-                        endNames.add( "@...");
-                        break;
+            for (int[] sequence : expectedTokenSequences) {
+                for (int aSequence : sequence) {
+                    switch (aSequence) {
+                        case END_FOREACH:
+                            endNames.add("#foreach");
+                            break;
+                        case END_LIST:
+                            endNames.add("#list");
+                            break;
+                        case END_SWITCH:
+                            endNames.add("#switch");
+                            break;
+                        case END_IF:
+                            endNames.add("#if");
+                            break;
+                        case END_COMPRESS:
+                            endNames.add("#compress");
+                            break;
+                        case END_MACRO:
+                            endNames.add("#macro");
+                        case END_FUNCTION:
+                            endNames.add("#function");
+                            break;
+                        case END_TRANSFORM:
+                            endNames.add("#transform");
+                            break;
+                        case END_ESCAPE:
+                            endNames.add("#escape");
+                            break;
+                        case END_NOESCAPE:
+                            endNames.add("#noescape");
+                            break;
+                        case END_ASSIGN:
+                            endNames.add("#assign");
+                            break;
+                        case END_LOCAL:
+                            endNames.add("#local");
+                            break;
+                        case END_GLOBAL:
+                            endNames.add("#global");
+                            break;
+                        case END_ATTEMPT:
+                            endNames.add("#attempt");
+                            break;
+                        case CLOSING_CURLY_BRACKET:
+                            endNames.add("\"{\"");
+                            break;
+                        case CLOSE_BRACKET:
+                            endNames.add("\"[\"");
+                            break;
+                        case CLOSE_PAREN:
+                            endNames.add("\"(\"");
+                            break;
+                        case UNIFIED_CALL_END:
+                            endNames.add("@...");
+                            break;
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/PropertySetting.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/PropertySetting.java b/src/main/java/org/apache/freemarker/core/ast/PropertySetting.java
index b31808a..a7083b7 100644
--- a/src/main/java/org/apache/freemarker/core/ast/PropertySetting.java
+++ b/src/main/java/org/apache/freemarker/core/ast/PropertySetting.java
@@ -86,19 +86,18 @@ final class PropertySetting extends TemplateElement {
                 }
                 
                 boolean first = true;
-                for (int i = 0; i < SETTING_NAMES.length; i++) {
-                    String correctName = SETTING_NAMES[i];
-                    int correctNameNamingConvetion = _StringUtil.getIdentifierNamingConvention(correctName);
-                    if (shownNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION 
-                            ? correctNameNamingConvetion != Configuration.LEGACY_NAMING_CONVENTION
-                            : correctNameNamingConvetion != Configuration.CAMEL_CASE_NAMING_CONVENTION) {
+                for (String correctName : SETTING_NAMES) {
+                    int correctNameNamingConvention = _StringUtil.getIdentifierNamingConvention(correctName);
+                    if (shownNamingConvention == Configuration.CAMEL_CASE_NAMING_CONVENTION
+                            ? correctNameNamingConvention != Configuration.LEGACY_NAMING_CONVENTION
+                            : correctNameNamingConvention != Configuration.CAMEL_CASE_NAMING_CONVENTION) {
                         if (first) {
                             first = false;
                         } else {
                             sb.append(", ");
                         }
-                    
-                        sb.append(SETTING_NAMES[i]);
+
+                        sb.append(correctName);
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/TextBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/TextBlock.java b/src/main/java/org/apache/freemarker/core/ast/TextBlock.java
index e6cd638..cc1ad9c 100644
--- a/src/main/java/org/apache/freemarker/core/ast/TextBlock.java
+++ b/src/main/java/org/apache/freemarker/core/ast/TextBlock.java
@@ -316,8 +316,7 @@ public final class TextBlock extends TemplateElement {
         if (isIgnorable(true)) {
             return false;
         }
-        for (int i = 0; i < text.length; i++) {
-            char c = text[i];
+        for (char c : text) {
             if (c == '\n' || c == '\r') {
                 return false;
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/_ErrorDescriptionBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/_ErrorDescriptionBuilder.java b/src/main/java/org/apache/freemarker/core/ast/_ErrorDescriptionBuilder.java
index eb022b5..1477e17 100644
--- a/src/main/java/org/apache/freemarker/core/ast/_ErrorDescriptionBuilder.java
+++ b/src/main/java/org/apache/freemarker/core/ast/_ErrorDescriptionBuilder.java
@@ -142,8 +142,8 @@ public class _ErrorDescriptionBuilder {
                 int dst = 0;
                 if (tip != null) allTips[dst++] = tip; 
                 if (tips != null) {
-                    for (int i = 0; i < tips.length; i++) {
-                        allTips[dst++] = tips[i]; 
+                    for (Object t : tips) {
+                        allTips[dst++] = t;
                     }
                 }
                 if (extraTip != null) allTips[dst++] = extraTip; 
@@ -209,9 +209,8 @@ public class _ErrorDescriptionBuilder {
     }
 
     private void appendParts(StringBuilder sb, Object[] parts) {
-        Template template = this.template != null ? this.template : (blamed != null ? blamed.getTemplate() : null); 
-        for (int i = 0; i < parts.length; i++) {
-            Object partObj = parts[i];
+        Template template = this.template != null ? this.template : (blamed != null ? blamed.getTemplate() : null);
+        for (Object partObj : parts) {
             if (partObj instanceof Object[]) {
                 appendParts(sb, (Object[]) partObj);
             } else {
@@ -220,14 +219,14 @@ public class _ErrorDescriptionBuilder {
                 if (partStr == null) {
                     partStr = "null";
                 }
-                
+
                 if (template != null) {
                     if (partStr.length() > 4
                             && partStr.charAt(0) == '<'
                             && (
-                                    (partStr.charAt(1) == '#' || partStr.charAt(1) == '@')
+                            (partStr.charAt(1) == '#' || partStr.charAt(1) == '@')
                                     || (partStr.charAt(1) == '/') && (partStr.charAt(2) == '#' || partStr.charAt(2) == '@')
-                               )
+                    )
                             && partStr.charAt(partStr.length() - 1) == '>') {
                         if (template.getActualTagSyntax() == Configuration.SQUARE_BRACKET_TAG_SYNTAX) {
                             sb.append('[');

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/ast/_ObjectBuilderSettingEvaluator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/_ObjectBuilderSettingEvaluator.java b/src/main/java/org/apache/freemarker/core/ast/_ObjectBuilderSettingEvaluator.java
index 984babe..06ccd7d 100644
--- a/src/main/java/org/apache/freemarker/core/ast/_ObjectBuilderSettingEvaluator.java
+++ b/src/main/java/org/apache/freemarker/core/ast/_ObjectBuilderSettingEvaluator.java
@@ -715,8 +715,7 @@ public class _ObjectBuilderSettingEvaluator {
         try {
             PropertyDescriptor[] propDescs = Introspector.getBeanInfo(cl).getPropertyDescriptors();
             beanPropSetters = new HashMap(propDescs.length * 4 / 3, 1.0f);
-            for (int i = 0; i < propDescs.length; i++) {
-                PropertyDescriptor propDesc = propDescs[i];
+            for (PropertyDescriptor propDesc : propDescs) {
                 final Method writeMethod = propDesc.getWriteMethod();
                 if (writeMethod != null) {
                     beanPropSetters.put(propDesc.getName(), writeMethod);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/ArgumentTypes.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/ArgumentTypes.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/ArgumentTypes.java
index c52294a..de31367 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/ArgumentTypes.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/ArgumentTypes.java
@@ -81,8 +81,8 @@ final class ArgumentTypes {
     @Override
     public int hashCode() {
         int hash = 0;
-        for (int i = 0; i < types.length; ++i) {
-            hash ^= types[i].hashCode();
+        for (Class<?> type : types) {
+            hash ^= type.hashCode();
         }
         return hash;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapper.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapper.java
index 3b4d3a8..14b0f80 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapper.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapper.java
@@ -1297,8 +1297,7 @@ public class BeansWrapper implements RichObjectWrapper, WriteProtectable {
             boolean isComponentTypeNumerical = false;  // will be filled on demand
             boolean isComponentTypeList = false;  // will be filled on demand
             int i = 0;
-            for (Iterator<?> it = list.iterator(); it.hasNext(); ) {
-                Object listItem = it.next();
+            for (Object listItem : list) {
                 if (listItem != null && !componentType.isInstance(listItem)) {
                     // Type conversion is needed. If we can't do it, we just let it fail at Array.set later.
                     if (!isComponentTypeExamined) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassIntrospector.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassIntrospector.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassIntrospector.java
index 4805db4..6f3516c 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassIntrospector.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassIntrospector.java
@@ -291,9 +291,7 @@ class ClassIntrospector {
 
     private void addFieldsToClassIntrospectionData(Map<Object, Object> introspData, Class<?> clazz)
             throws SecurityException {
-        Field[] fields = clazz.getFields();
-        for (int i = 0; i < fields.length; i++) {
-            Field field = fields[i];
+        for (Field field : clazz.getFields()) {
             if ((field.getModifiers() & Modifier.STATIC) == 0) {
                 introspData.put(field.getName(), field);
             }
@@ -436,8 +434,8 @@ class ClassIntrospector {
                 introspData.put(CONSTRUCTORS_KEY, new SimpleMethod(ctor, ctor.getParameterTypes()));
             } else if (ctors.length > 1) {
                 OverloadedMethods overloadedCtors = new OverloadedMethods(bugfixed);
-                for (int i = 0; i < ctors.length; i++) {
-                    overloadedCtors.addConstructor(ctors[i]);
+                for (Constructor<?> ctor : ctors) {
+                    overloadedCtors.addConstructor(ctor);
                 }
                 introspData.put(CONSTRUCTORS_KEY, overloadedCtors);
             }
@@ -461,8 +459,7 @@ class ClassIntrospector {
         if (Modifier.isPublic(clazz.getModifiers())) {
             try {
                 Method[] methods = clazz.getMethods();
-                for (int i = 0; i < methods.length; i++) {
-                    Method method = methods[i];
+                for (Method method : methods) {
                     MethodSignature sig = new MethodSignature(method);
                     // Contrary to intuition, a class can actually have several
                     // different methods with same signature *but* different
@@ -477,7 +474,7 @@ class ClassIntrospector {
                     // C.class will have both "Object m()" and "Integer m()" methods.
                     List<Method> methodList = accessibles.get(sig);
                     if (methodList == null) {
-                     // TODO Collection.singletonList is more efficient, though read only.
+                        // TODO Collection.singletonList is more efficient, though read only.
                         methodList = new LinkedList<>();
                         accessibles.put(sig, methodList);
                     }
@@ -492,8 +489,8 @@ class ClassIntrospector {
         }
 
         Class<?>[] interfaces = clazz.getInterfaces();
-        for (int i = 0; i < interfaces.length; i++) {
-            discoverAccessibleMethods(interfaces[i], accessibles);
+        for (Class<?> anInterface : interfaces) {
+            discoverAccessibleMethods(anInterface, accessibles);
         }
         Class<?> superclass = clazz.getSuperclass();
         if (superclass != null) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/StaticModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/StaticModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/StaticModel.java
index f022300..024e454 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/StaticModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/StaticModel.java
@@ -115,8 +115,7 @@ final class StaticModel implements TemplateHashModelEx {
         }
 
         Field[] fields = clazz.getFields();
-        for (int i = 0; i < fields.length; ++i) {
-            Field field = fields[i];
+        for (Field field : fields) {
             int mod = field.getModifiers();
             if (Modifier.isPublic(mod) && Modifier.isStatic(mod)) {
                 if (Modifier.isFinal(mod))
@@ -126,7 +125,8 @@ final class StaticModel implements TemplateHashModelEx {
                         map.put(field.getName(), wrapper.getOuterIdentity().wrap(field.get(null)));
                     } catch (IllegalAccessException e) {
                         // Intentionally ignored
-                    } else
+                    }
+                else
                     // This is a special flagging value: Field in the map means
                     // that this is a non-final field, and it must be evaluated
                     // on each get() call.
@@ -135,8 +135,7 @@ final class StaticModel implements TemplateHashModelEx {
         }
         if (wrapper.getExposureLevel() < BeansWrapper.EXPOSE_PROPERTIES_ONLY) {
             Method[] methods = clazz.getMethods();
-            for (int i = 0; i < methods.length; ++i) {
-                Method method = methods[i];
+            for (Method method : methods) {
                 int mod = method.getModifiers();
                 if (Modifier.isPublic(mod) && Modifier.isStatic(mod)
                         && wrapper.getClassIntrospector().isAllowedToExpose(method)) {
@@ -154,7 +153,7 @@ final class StaticModel implements TemplateHashModelEx {
                         if (obj != null) {
                             if (LOG.isInfoEnabled()) {
                                 LOG.info("Overwriting value [" + obj + "] for " +
-                                        " key '" + name + "' with [" + method + 
+                                        " key '" + name + "' with [" + method +
                                         "] in static model for " + clazz.getName());
                             }
                         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/_BeansAPI.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/_BeansAPI.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/_BeansAPI.java
index bac89a5..a8c6680 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/_BeansAPI.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/_BeansAPI.java
@@ -65,9 +65,7 @@ public class _BeansAPI {
                 = new ArrayList<>();
         final List<ReflectionCallableMemberDescriptor> varArgsMemberDescs
                 = new ArrayList<>();
-        final Constructor<?>[] constrs = pClass.getConstructors();
-        for (int i = 0; i < constrs.length; i++) {
-            Constructor<?> constr = constrs[i];
+        for (Constructor<?> constr : pClass.getConstructors()) {
             ReflectionCallableMemberDescriptor memberDesc = new ReflectionCallableMemberDescriptor(constr, constr.getParameterTypes());
             if (!_MethodUtil.isVarargs(constr)) {
                 fixedArgMemberDescs.add(memberDesc);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/_EnumModels.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/_EnumModels.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/_EnumModels.java
index 932bf61..573757b 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/_EnumModels.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/_EnumModels.java
@@ -45,8 +45,8 @@ public class _EnumModels extends ClassBasedModelFactory {
             return null;
         }
         Map map = new LinkedHashMap();
-        for (int i = 0; i < obj.length; i++) {
-            Enum value = (Enum) obj[i];
+        for (Object anObj : obj) {
+            Enum value = (Enum) anObj;
             map.put(value.name(), value);
         }
         return new SimpleMapModel(map, getWrapper());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/beans/_MethodUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/_MethodUtil.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/_MethodUtil.java
index ae99450..3271371 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/_MethodUtil.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/_MethodUtil.java
@@ -175,8 +175,8 @@ public final class _MethodUtil {
             collectAssignables(sc, c2, s);
         }
         Class[] itf = c1.getInterfaces();
-        for (int i = 0; i < itf.length; ++i) {
-            collectAssignables(itf[i], c2, s);
+        for (Class anItf : itf) {
+            collectAssignables(anItf, c2, s);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeListModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeListModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeListModel.java
index 73097bf..2575bc5 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeListModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeListModel.java
@@ -204,8 +204,7 @@ class NodeListModel extends SimpleSequence implements TemplateHashModel, _Unexpe
 
     @Override
     public Object[] explainTypeError(Class[] expectedClasses) {
-        for (int i = 0; i < expectedClasses.length; i++) {
-            Class expectedClass = expectedClasses[i];
+        for (Class expectedClass : expectedClasses) {
             if (TemplateScalarModel.class.isAssignableFrom(expectedClass)
                     || TemplateDateModel.class.isAssignableFrom(expectedClass)
                     || TemplateNumberModel.class.isAssignableFrom(expectedClass)

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeModel.java
index 3d108a1..2aca51d 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/NodeModel.java
@@ -771,17 +771,16 @@ implements TemplateNodeModelEx, TemplateHashModel, TemplateSequenceModel,
     
     @Override
     public Object[] explainTypeError(Class[] expectedClasses) {
-        for (int i = 0; i < expectedClasses.length; i++) {
-            Class expectedClass = expectedClasses[i];
+        for (Class expectedClass : expectedClasses) {
             if (TemplateDateModel.class.isAssignableFrom(expectedClass)
                     || TemplateNumberModel.class.isAssignableFrom(expectedClass)
                     || TemplateBooleanModel.class.isAssignableFrom(expectedClass)) {
-                return new Object[] {
+                return new Object[]{
                         "XML node values are always strings (text), that is, they can't be used as number, "
-                        + "date/time/datetime or boolean without explicit conversion (such as "
-                        + "someNode?number, someNode?datetime.xs, someNode?date.xs, someNode?time.xs, "
-                        + "someNode?boolean).",
-                        };
+                                + "date/time/datetime or boolean without explicit conversion (such as "
+                                + "someNode?number, someNode?datetime.xs, someNode?date.xs, someNode?time.xs, "
+                                + "someNode?boolean).",
+                };
             }
         }
         return null;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/templateresolver/impl/FileTemplateLoader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/templateresolver/impl/FileTemplateLoader.java b/src/main/java/org/apache/freemarker/core/templateresolver/impl/FileTemplateLoader.java
index d048070..360dd60 100644
--- a/src/main/java/org/apache/freemarker/core/templateresolver/impl/FileTemplateLoader.java
+++ b/src/main/java/org/apache/freemarker/core/templateresolver/impl/FileTemplateLoader.java
@@ -233,8 +233,7 @@ public class FileTemplateLoader implements TemplateLoader {
         
                 if (!identicalNameFound) {
                     // If we find a similarly named file that only differs in case, then this is a file-not-found.
-                    for (int i = 0; i < listing.length; i++) {
-                        final String listingEntry = listing[i];
+                    for (final String listingEntry : listing) {
                         if (fileName.equalsIgnoreCase(listingEntry)) {
                             if (LOG.isDebugEnabled()) {
                                 LOG.debug("Emulating file-not-found because of letter case differences to the "

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/core/util/_StringUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/_StringUtil.java b/src/main/java/org/apache/freemarker/core/util/_StringUtil.java
index a63f299..201b2ac 100644
--- a/src/main/java/org/apache/freemarker/core/util/_StringUtil.java
+++ b/src/main/java/org/apache/freemarker/core/util/_StringUtil.java
@@ -213,9 +213,8 @@ public class _StringUtil {
      * For efficiently copying very short char arrays.
      */
     private static int shortArrayCopy(char[] src, char[] dst, int dstOffset) {
-        int ln = src.length;
-        for (int i = 0; i < ln; i++) {
-            dst[dstOffset++] = src[i];
+        for (char aSrc : src) {
+            dst[dstOffset++] = aSrc;
         }
         return dstOffset;
     }
@@ -360,9 +359,8 @@ public class _StringUtil {
             if (safeInURL(c, keepSlash)) {
                 if (encStart != -1) {
                     byte[] o = s.substring(encStart, i).getBytes(charset);
-                    for (int j = 0; j < o.length; j++) {
+                    for (byte bc : o) {
                         b.append('%');
-                        byte bc = o[j];
                         int c1 = bc & 0x0F;
                         int c2 = (bc >> 4) & 0x0F;
                         b.append((char) (c2 < 10 ? c2 + '0' : c2 - 10 + 'A'));
@@ -379,9 +377,8 @@ public class _StringUtil {
         }
         if (encStart != -1) {
             byte[] o = s.substring(encStart, i).getBytes(charset);
-            for (int j = 0; j < o.length; j++) {
+            for (byte bc : o) {
                 b.append('%');
-                byte bc = o[j];
                 int c1 = bc & 0x0F;
                 int c2 = (bc >> 4) & 0x0F;
                 b.append((char) (c2 < 10 ? c2 + '0' : c2 - 10 + 'A'));

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java b/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java
index 61b965e..e96f89b 100644
--- a/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java
+++ b/src/main/java/org/apache/freemarker/servlet/jsp/JspTagModelBase.java
@@ -55,8 +55,7 @@ class JspTagModelBase {
         this.tagClass = tagClass;
         BeanInfo bi = Introspector.getBeanInfo(tagClass);
         PropertyDescriptor[] pda = bi.getPropertyDescriptors();
-        for (int i = 0; i < pda.length; i++) {
-            PropertyDescriptor pd = pda[i];
+        for (PropertyDescriptor pd : pda) {
             Method m = pd.getWriteMethod();
             if (m != null) {
                 propertySetters.put(pd.getName(), m);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java b/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
index 096f2f3..d65890b 100644
--- a/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
+++ b/src/main/java/org/apache/freemarker/servlet/jsp/TaglibFactory.java
@@ -754,8 +754,7 @@ public class TaglibFactory implements TemplateHashModel {
             if (tldFiles == null) {
                 throw new IOException("Can't list this directory for some reason: " + dir);
             }
-            for (int i = 0; i < tldFiles.length; i++) {
-                final File file = tldFiles[i];
+            for (final File file : tldFiles) {
                 addTldLocationFromTld(new FileTldLocation(file));
             }
         } else {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java b/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
index c784e95..0730b3a 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
@@ -662,8 +662,8 @@ public class TypeFlagsTest extends TestCase {
                 assertEquals(expectedTypeFlags[i], actualParamTypes[i]);
             }
         } else {
-            for (int i = 0; i < expectedTypeFlags.length; i++) {
-                assertEquals(expectedTypeFlags[i], 0);
+            for (int expectedTypeFlag : expectedTypeFlags) {
+                assertEquals(expectedTypeFlag, 0);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/4b680d20/src/test/java/org/apache/freemarker/servlet/jsp/TaglibMethodUtilTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/servlet/jsp/TaglibMethodUtilTest.java b/src/test/java/org/apache/freemarker/servlet/jsp/TaglibMethodUtilTest.java
index 6a4a295..e4a0a3b 100644
--- a/src/test/java/org/apache/freemarker/servlet/jsp/TaglibMethodUtilTest.java
+++ b/src/test/java/org/apache/freemarker/servlet/jsp/TaglibMethodUtilTest.java
@@ -98,8 +98,8 @@ public class TaglibMethodUtilTest {
 
         public static double sum(double [] a) { 
             double sum = 0.0;
-            for (int i = 0; i < a.length; i++) {
-                sum += a[i];
+            for (double i : a) {
+                sum += i;
             }
             return sum;
         }


[2/4] incubator-freemarker git commit: Added missing @Override annotations (which were illegal on Java 5)

Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionAdapter.java
index e3f8066..74db4cb 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionAdapter.java
@@ -42,6 +42,7 @@ class CollectionAdapter extends AbstractCollection implements TemplateModelAdapt
         this.wrapper = wrapper;
     }
     
+    @Override
     public TemplateModel getTemplateModel() {
         return model;
     }
@@ -57,6 +58,7 @@ class CollectionAdapter extends AbstractCollection implements TemplateModelAdapt
             return new Iterator() {
                 final TemplateModelIterator i = model.iterator();
     
+                @Override
                 public boolean hasNext() {
                     try {
                         return i.hasNext();
@@ -65,6 +67,7 @@ class CollectionAdapter extends AbstractCollection implements TemplateModelAdapt
                     }
                 }
                 
+                @Override
                 public Object next() {
                     try {
                         return wrapper.unwrap(i.next());
@@ -73,6 +76,7 @@ class CollectionAdapter extends AbstractCollection implements TemplateModelAdapt
                     }
                 }
                 
+                @Override
                 public void remove() {
                     throw new UnsupportedOperationException();
                 }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionModel.java
index 1520d72..d27a56d 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/CollectionModel.java
@@ -43,6 +43,7 @@ implements
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new CollectionModel((Collection) object, (BeansWrapper) wrapper);
             }
@@ -66,6 +67,7 @@ implements
      * @throws TemplateModelException if the index is out of bounds, or the
      * underlying collection is not a List.
      */
+    @Override
     public TemplateModel get(int index)
     throws TemplateModelException {
         // Don't forget to keep getSupportsIndexedAccess in sync with this!
@@ -94,6 +96,7 @@ implements
         return object instanceof List;
     }
     
+    @Override
     public TemplateModelIterator iterator() {
         return new IteratorModel(((Collection) object).iterator(), wrapper);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/DateModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/DateModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/DateModel.java
index 5b382e4..55419cd 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/DateModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/DateModel.java
@@ -38,6 +38,7 @@ implements
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new DateModel((Date) object, (BeansWrapper) wrapper);
             }
@@ -66,10 +67,12 @@ implements
         }
     }
 
+    @Override
     public Date getAsDate() {
         return (Date) object;
     }
 
+    @Override
     public int getDateType() {
         return type;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/EnumerationModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/EnumerationModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/EnumerationModel.java
index 73a47fc..e90aab9 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/EnumerationModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/EnumerationModel.java
@@ -61,6 +61,7 @@ implements
      * This allows the enumeration to be used in a <tt>&lt;#list&gt;</tt> block.
      * @return "this"
      */
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         synchronized (this) {
             if (accessed) {
@@ -76,6 +77,7 @@ implements
     /**
      * Calls underlying {@link Enumeration#nextElement()}.
      */
+    @Override
     public boolean hasNext() {
         return ((Enumeration) object).hasMoreElements();
     }
@@ -84,6 +86,7 @@ implements
     /**
      * Calls underlying {@link Enumeration#nextElement()} and wraps the result.
      */
+    @Override
     public TemplateModel next()
     throws TemplateModelException {
         try {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/HashAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/HashAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/HashAdapter.java
index bf7f30f..0fcc58f 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/HashAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/HashAdapter.java
@@ -45,6 +45,7 @@ public class HashAdapter extends AbstractMap implements TemplateModelAdapter {
         this.wrapper = wrapper;
     }
     
+    @Override
     public TemplateModel getTemplateModel() {
         return model;
     }
@@ -91,6 +92,7 @@ public class HashAdapter extends AbstractMap implements TemplateModelAdapter {
                     throw new UndeclaredThrowableException(e);
                 }
                 return new Iterator() {
+                    @Override
                     public boolean hasNext() {
                         try {
                             return i.hasNext();
@@ -99,6 +101,7 @@ public class HashAdapter extends AbstractMap implements TemplateModelAdapter {
                         }
                     }
                     
+                    @Override
                     public Object next() {
                         final Object key;
                         try {
@@ -107,14 +110,17 @@ public class HashAdapter extends AbstractMap implements TemplateModelAdapter {
                             throw new UndeclaredThrowableException(e);
                         }
                         return new Map.Entry() {
+                            @Override
                             public Object getKey() {
                                 return key;
                             }
                             
+                            @Override
                             public Object getValue() {
                                 return get(key);
                             }
                             
+                            @Override
                             public Object setValue(Object value) {
                                 throw new UnsupportedOperationException();
                             }
@@ -144,6 +150,7 @@ public class HashAdapter extends AbstractMap implements TemplateModelAdapter {
                         };
                     }
                     
+                    @Override
                     public void remove() {
                         throw new UnsupportedOperationException();
                     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/IteratorModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/IteratorModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/IteratorModel.java
index 17968b8..767c15e 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/IteratorModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/IteratorModel.java
@@ -65,6 +65,7 @@ implements
      * This allows the iterator to be used in a <tt>&lt;#list&gt;</tt> block.
      * @return "this"
      */
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         synchronized (this) {
             if (accessed) {
@@ -80,6 +81,7 @@ implements
     /**
      * Calls underlying {@link Iterator#hasNext()}.
      */
+    @Override
     public boolean hasNext() {
         return ((Iterator) object).hasNext();
     }
@@ -88,6 +90,7 @@ implements
     /**
      * Calls underlying {@link Iterator#next()} and wraps the result.
      */
+    @Override
     public TemplateModel next()
     throws TemplateModelException {
         try {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/JRebelClassChangeNotifier.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/JRebelClassChangeNotifier.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/JRebelClassChangeNotifier.java
index f9d463c..956a6c4 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/JRebelClassChangeNotifier.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/JRebelClassChangeNotifier.java
@@ -30,6 +30,7 @@ class JRebelClassChangeNotifier implements ClassChangeNotifier {
         ReloaderFactory.getInstance();
     }
 
+    @Override
     public void subscribe(ClassIntrospector classIntrospector) {
         ReloaderFactory.getInstance().addClassReloadListener(
                 new ClassIntrospectorCacheInvalidator(classIntrospector));
@@ -43,6 +44,7 @@ class JRebelClassChangeNotifier implements ClassChangeNotifier {
             ref = new WeakReference(w);
         }
 
+        @Override
         public void onClassEvent(int eventType, Class pClass) {
             ClassIntrospector ci = (ClassIntrospector) ref.get();
             if (ci == null) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/MapModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/MapModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/MapModel.java
index cf7e6cb..0af8749 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/MapModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/MapModel.java
@@ -49,6 +49,7 @@ implements
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new MapModel((Map) object, (BeansWrapper) wrapper);
             }
@@ -69,6 +70,7 @@ implements
     /**
      * The first argument is used as a key to call the map's <tt>get</tt> method.
      */
+    @Override
     public Object exec(List arguments)
     throws TemplateModelException {
         Object key = unwrap((TemplateModel) arguments.get(0));

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/NumberModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/NumberModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/NumberModel.java
index 4d4e2bb..1d0013e 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/NumberModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/NumberModel.java
@@ -36,6 +36,7 @@ implements
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new NumberModel((Number) object, (BeansWrapper) wrapper);
             }
@@ -52,6 +53,7 @@ implements
         super(number, wrapper);
     }
 
+    @Override
     public Number getAsNumber() {
         return (Number) object;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedMethodsModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedMethodsModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedMethodsModel.java
index 65f59c8..9951c3e 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedMethodsModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedMethodsModel.java
@@ -54,6 +54,7 @@ implements
      * @throws TemplateModelException if the method cannot be chosen
      * unambiguously.
      */
+    @Override
     public Object exec(List arguments)
     throws TemplateModelException {
         MemberAndArguments maa = overloadedMethods.getMemberAndArguments(arguments, wrapper);
@@ -69,11 +70,13 @@ implements
         }
     }
 
+    @Override
     public TemplateModel get(int index) throws TemplateModelException {
         return (TemplateModel) exec(Collections.singletonList(
                 new SimpleNumber(Integer.valueOf(index))));
     }
 
+    @Override
     public int size() throws TemplateModelException {
         throw new TemplateModelException("?size is unsupported for " + getClass().getName());
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedNumberUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedNumberUtil.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedNumberUtil.java
index 8f27ecf..e435d2d 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedNumberUtil.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/OverloadedNumberUtil.java
@@ -383,6 +383,7 @@ class OverloadedNumberUtil {
 
         // We have to implement this, so that if a potential matching method expects a Comparable, which is implemented
         // by all the supported numerical types, the "Or" type will be a match. 
+        @Override
         public int compareTo(Object o) {
             Number n = getSourceNumber();
             if (n instanceof Comparable) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/ResourceBundleModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/ResourceBundleModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/ResourceBundleModel.java
index a181baf..4dadba3 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/ResourceBundleModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/ResourceBundleModel.java
@@ -59,6 +59,7 @@ public class ResourceBundleModel
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new ResourceBundleModel((ResourceBundle) object, (BeansWrapper) wrapper);
             }
@@ -115,6 +116,7 @@ public class ResourceBundleModel
      * with this key, then applies a MessageFormat.format on the string with the
      * rest of the arguments. The created MessageFormats are cached for later reuse.
      */
+    @Override
     public Object exec(List arguments)
         throws TemplateModelException {
         // Must have at least one argument - the key

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/SequenceAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/SequenceAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/SequenceAdapter.java
index 7f09e10..7f66cf9 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/SequenceAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/SequenceAdapter.java
@@ -38,6 +38,7 @@ class SequenceAdapter extends AbstractList implements TemplateModelAdapter {
         this.wrapper = wrapper;
     }
     
+    @Override
     public TemplateModel getTemplateModel() {
         return model;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMapModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMapModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMapModel.java
index c681d9c..a501501 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMapModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMapModel.java
@@ -49,6 +49,7 @@ WrapperTemplateModel, TemplateModelWithAPISupport {
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new SimpleMapModel((Map) object, (BeansWrapper) wrapper);
             }
@@ -61,6 +62,7 @@ WrapperTemplateModel, TemplateModelWithAPISupport {
         this.map = map;
     }
 
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         Object val = map.get(key);
         if (val == null) {
@@ -78,6 +80,7 @@ WrapperTemplateModel, TemplateModelWithAPISupport {
         return wrap(val);
     }
     
+    @Override
     public Object exec(List args) throws TemplateModelException {
         Object key = ((BeansWrapper) getObjectWrapper()).unwrap((TemplateModel) args.get(0));
         Object value = map.get(key);
@@ -87,34 +90,42 @@ WrapperTemplateModel, TemplateModelWithAPISupport {
         return wrap(value);
     }
 
+    @Override
     public boolean isEmpty() {
         return map.isEmpty();
     }
 
+    @Override
     public int size() {
         return map.size();
     }
 
+    @Override
     public TemplateCollectionModel keys() {
         return new CollectionAndSequence(new SimpleSequence(map.keySet(), getObjectWrapper()));
     }
 
+    @Override
     public TemplateCollectionModel values() {
         return new CollectionAndSequence(new SimpleSequence(map.values(), getObjectWrapper()));
     }
     
+    @Override
     public KeyValuePairIterator keyValuePairIterator() {
         return new MapKeyValuePairIterator(map, getObjectWrapper());
     }
 
+    @Override
     public Object getAdaptedObject(Class hint) {
         return map;
     }
     
+    @Override
     public Object getWrappedObject() {
         return map;
     }
 
+    @Override
     public TemplateModel getAPI() throws TemplateModelException {
         return ((RichObjectWrapper) getObjectWrapper()).wrapAsAPI(map);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMethodModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMethodModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMethodModel.java
index 220f5fe..0105412 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMethodModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/SimpleMethodModel.java
@@ -63,6 +63,7 @@ public final class SimpleMethodModel extends SimpleMethod
     /**
      * Invokes the method, passing it the arguments from the list.
      */
+    @Override
     public Object exec(List arguments)
         throws TemplateModelException {
         try {
@@ -75,11 +76,13 @@ public final class SimpleMethodModel extends SimpleMethod
         }
     }
     
+    @Override
     public TemplateModel get(int index) throws TemplateModelException {
         return (TemplateModel) exec(Collections.singletonList(
                 new SimpleNumber(Integer.valueOf(index))));
     }
 
+    @Override
     public int size() throws TemplateModelException {
         throw new TemplateModelException(
                 "Getting the number of items or enumerating the items is not supported on this "
@@ -98,6 +101,7 @@ public final class SimpleMethodModel extends SimpleMethod
     /**
      * Implementation of experimental interface; don't use it, no backward compatibility guarantee!
      */
+    @Override
     public Object[] explainTypeError(Class[] expectedClasses) {
         final Member member = getMember();
         if (!(member instanceof Method)) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/StringModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/StringModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/StringModel.java
index 4c12c6d..0591f6e 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/StringModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/StringModel.java
@@ -33,6 +33,7 @@ implements TemplateScalarModel {
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new StringModel(object, (BeansWrapper) wrapper);
             }
@@ -55,6 +56,7 @@ implements TemplateScalarModel {
      * Returns the result of calling {@link Object#toString()} on the wrapped
      * object.
      */
+    @Override
     public String getAsString() {
         return object.toString();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/AttributeNodeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/AttributeNodeModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/AttributeNodeModel.java
index 2f849a6..30bab99 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/AttributeNodeModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/AttributeNodeModel.java
@@ -29,10 +29,12 @@ class AttributeNodeModel extends NodeModel implements TemplateScalarModel {
         super(att);
     }
     
+    @Override
     public String getAsString() {
         return ((Attr) node).getValue();
     }
     
+    @Override
     public String getNodeName() {
         String result = node.getLocalName();
         if (result == null || result.equals("")) {
@@ -41,6 +43,7 @@ class AttributeNodeModel extends NodeModel implements TemplateScalarModel {
         return result;
     }
     
+    @Override
     public boolean isEmpty() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/CharacterDataNodeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/CharacterDataNodeModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/CharacterDataNodeModel.java
index d87e27a..a488fee 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/CharacterDataNodeModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/CharacterDataNodeModel.java
@@ -29,14 +29,17 @@ class CharacterDataNodeModel extends NodeModel implements TemplateScalarModel {
         super(text);
     }
     
+    @Override
     public String getAsString() {
         return ((org.w3c.dom.CharacterData) node).getData();
     }
     
+    @Override
     public String getNodeName() {
         return (node instanceof Comment) ? "@comment" : "@text";
     }
     
+    @Override
     public boolean isEmpty() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentModel.java
index 42b4dda..2e17632 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentModel.java
@@ -39,6 +39,7 @@ class DocumentModel extends NodeModel implements TemplateHashModel {
         super(doc);
     }
     
+    @Override
     public String getNodeName() {
         return "@document";
     }
@@ -68,6 +69,7 @@ class DocumentModel extends NodeModel implements TemplateHashModel {
         return rootElement;
     }
     
+    @Override
     public boolean isEmpty() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentTypeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentTypeModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentTypeModel.java
index 196b91c..d4ad5f1 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentTypeModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/DocumentTypeModel.java
@@ -44,10 +44,12 @@ class DocumentTypeModel extends NodeModel {
         throw new TemplateModelException("accessing properties of a DTD is not currently supported");
     }
     
+    @Override
     public String getNodeName() {
         return "@document_type$" + ((DocumentType) node).getNodeName();
     }
     
+    @Override
     public boolean isEmpty() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/ElementModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/ElementModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/ElementModel.java
index 27720bc..8874cba 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/ElementModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/ElementModel.java
@@ -39,6 +39,7 @@ class ElementModel extends NodeModel implements TemplateScalarModel {
         super(element);
     }
     
+    @Override
     public boolean isEmpty() {
         return false;
     }
@@ -125,6 +126,7 @@ class ElementModel extends NodeModel implements TemplateScalarModel {
         }
     }
 
+    @Override
     public String getAsString() throws TemplateModelException {
         NodeList nl = node.getChildNodes();
         String result = "";
@@ -144,6 +146,7 @@ class ElementModel extends NodeModel implements TemplateScalarModel {
         return result;
     }
     
+    @Override
     public String getNodeName() {
         String result = node.getLocalName();
         if (result == null || result.equals("")) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/PINodeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/PINodeModel.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/PINodeModel.java
index 340497e..f2fe0f7 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/PINodeModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/PINodeModel.java
@@ -28,14 +28,17 @@ class PINodeModel extends NodeModel implements TemplateScalarModel {
         super(pi);
     }
     
+    @Override
     public String getAsString() {
         return ((ProcessingInstruction) node).getData();
     }
     
+    @Override
     public String getNodeName() {
         return "@pi$" + ((ProcessingInstruction) node).getTarget();
     }
     
+    @Override
     public boolean isEmpty() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/SunInternalXalanXPathSupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/SunInternalXalanXPathSupport.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/SunInternalXalanXPathSupport.java
index 2783cdc..716dc2d 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/SunInternalXalanXPathSupport.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/SunInternalXalanXPathSupport.java
@@ -59,6 +59,7 @@ class SunInternalXalanXPathSupport implements XPathSupport {
     private static final String ERRMSG_EMPTY_NODE_SET
             = "Cannot perform an XPath query against an empty node set." + ERRMSG_RECOMMEND_JAXEN;
     
+    @Override
     synchronized public TemplateModel executeQuery(Object context, String xpathQuery) throws TemplateModelException {
         if (!(context instanceof Node)) {
             if (context != null) {
@@ -118,10 +119,12 @@ class SunInternalXalanXPathSupport implements XPathSupport {
     
     private static PrefixResolver customPrefixResolver = new PrefixResolver() {
         
+        @Override
         public String getNamespaceForPrefix(String prefix, Node node) {
             return getNamespaceForPrefix(prefix);
         }
         
+        @Override
         public String getNamespaceForPrefix(String prefix) {
             if (prefix.equals(Template.DEFAULT_NAMESPACE_PREFIX)) {
                 return Environment.getCurrentEnvironment().getDefaultNS();
@@ -129,10 +132,12 @@ class SunInternalXalanXPathSupport implements XPathSupport {
             return Environment.getCurrentEnvironment().getNamespaceForPrefix(prefix);
         }
         
+        @Override
         public String getBaseIdentifier() {
             return null;
         }
         
+        @Override
         public boolean handlesNullPrefixes() {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/dom/XalanXPathSupport.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/dom/XalanXPathSupport.java b/src/main/java/org/apache/freemarker/core/model/impl/dom/XalanXPathSupport.java
index 27983c5..0e4a5b4 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/dom/XalanXPathSupport.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/dom/XalanXPathSupport.java
@@ -59,6 +59,7 @@ class XalanXPathSupport implements XPathSupport {
     private static final String ERRMSG_EMPTY_NODE_SET
             = "Cannot perform an XPath query against an empty node set."; /* " + ERRMSG_RECOMMEND_JAXEN;*/
     
+    @Override
     synchronized public TemplateModel executeQuery(Object context, String xpathQuery) throws TemplateModelException {
         if (!(context instanceof Node)) {
             if (context != null) {
@@ -118,10 +119,12 @@ class XalanXPathSupport implements XPathSupport {
     
     private static PrefixResolver customPrefixResolver = new PrefixResolver() {
         
+        @Override
         public String getNamespaceForPrefix(String prefix, Node node) {
             return getNamespaceForPrefix(prefix);
         }
         
+        @Override
         public String getNamespaceForPrefix(String prefix) {
             if (prefix.equals(Template.DEFAULT_NAMESPACE_PREFIX)) {
                 return Environment.getCurrentEnvironment().getDefaultNS();
@@ -129,10 +132,12 @@ class XalanXPathSupport implements XPathSupport {
             return Environment.getCurrentEnvironment().getNamespaceForPrefix(prefix);
         }
         
+        @Override
         public String getBaseIdentifier() {
             return null;
         }
         
+        @Override
         public boolean handlesNullPrefixes() {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/templateresolver/impl/MruCacheStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/templateresolver/impl/MruCacheStorage.java b/src/main/java/org/apache/freemarker/core/templateresolver/impl/MruCacheStorage.java
index 62fe137..367714f 100644
--- a/src/main/java/org/apache/freemarker/core/templateresolver/impl/MruCacheStorage.java
+++ b/src/main/java/org/apache/freemarker/core/templateresolver/impl/MruCacheStorage.java
@@ -85,6 +85,7 @@ public class MruCacheStorage implements CacheStorageWithGetSize {
         this.softSizeLimit = softSizeLimit;
     }
     
+    @Override
     public Object get(Object key) {
         removeClearedReferences();
         MruEntry entry = (MruEntry) map.get(key);
@@ -100,6 +101,7 @@ public class MruCacheStorage implements CacheStorageWithGetSize {
         return value;
     }
 
+    @Override
     public void put(Object key, Object value) {
         removeClearedReferences();
         MruEntry entry = (MruEntry) map.get(key);
@@ -113,6 +115,7 @@ public class MruCacheStorage implements CacheStorageWithGetSize {
         
     }
 
+    @Override
     public void remove(Object key) {
         removeClearedReferences();
         removeInternal(key);
@@ -125,6 +128,7 @@ public class MruCacheStorage implements CacheStorageWithGetSize {
         }
     }
 
+    @Override
     public void clear() {
         strongHead.makeHead();
         softHead.linkAfter(strongHead);
@@ -250,6 +254,7 @@ public class MruCacheStorage implements CacheStorageWithGetSize {
      * @see #getSoftSize()
      * @since 2.3.21
      */
+    @Override
     public int getSize() {
         return getSoftSize() + getStrongSize();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/templateresolver/impl/NullCacheStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/templateresolver/impl/NullCacheStorage.java b/src/main/java/org/apache/freemarker/core/templateresolver/impl/NullCacheStorage.java
index 9bc24eb..64f51b0 100644
--- a/src/main/java/org/apache/freemarker/core/templateresolver/impl/NullCacheStorage.java
+++ b/src/main/java/org/apache/freemarker/core/templateresolver/impl/NullCacheStorage.java
@@ -38,22 +38,27 @@ public class NullCacheStorage implements ConcurrentCacheStorage, CacheStorageWit
      */
     public static final NullCacheStorage INSTANCE = new NullCacheStorage();
 
+    @Override
     public boolean isConcurrent() {
         return true;
     }
     
+    @Override
     public Object get(Object key) {
         return null;
     }
 
+    @Override
     public void put(Object key, Object value) {
         // do nothing
     }
 
+    @Override
     public void remove(Object key) {
         // do nothing
     }
     
+    @Override
     public void clear() {
         // do nothing
     }
@@ -63,6 +68,7 @@ public class NullCacheStorage implements ConcurrentCacheStorage, CacheStorageWit
      * 
      * @since 2.3.21
      */
+    @Override
     public int getSize() {
         return 0;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/templateresolver/impl/SoftCacheStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/templateresolver/impl/SoftCacheStorage.java b/src/main/java/org/apache/freemarker/core/templateresolver/impl/SoftCacheStorage.java
index cb0d963..0973989 100644
--- a/src/main/java/org/apache/freemarker/core/templateresolver/impl/SoftCacheStorage.java
+++ b/src/main/java/org/apache/freemarker/core/templateresolver/impl/SoftCacheStorage.java
@@ -58,6 +58,7 @@ public class SoftCacheStorage implements ConcurrentCacheStorage, CacheStorageWit
     /**
      * Returns true if the underlying Map is a {@code ConcurrentMap}.
      */
+    @Override
     public boolean isConcurrent() {
         return concurrent;
     }
@@ -67,22 +68,26 @@ public class SoftCacheStorage implements ConcurrentCacheStorage, CacheStorageWit
         this.concurrent = map instanceof ConcurrentMap;
     }
     
+    @Override
     public Object get(Object key) {
         processQueue();
         Reference ref = (Reference) map.get(key);
         return ref == null ? null : ref.get();
     }
 
+    @Override
     public void put(Object key, Object value) {
         processQueue();
         map.put(key, new SoftValueReference(key, value, queue));
     }
 
+    @Override
     public void remove(Object key) {
         processQueue();
         map.remove(key);
     }
 
+    @Override
     public void clear() {
         map.clear();
         processQueue();
@@ -93,6 +98,7 @@ public class SoftCacheStorage implements ConcurrentCacheStorage, CacheStorageWit
      * 
      * @since 2.3.21
      */
+    @Override
     public int getSize() {
         processQueue();
         return map.size();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/templateresolver/impl/StrongCacheStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/templateresolver/impl/StrongCacheStorage.java b/src/main/java/org/apache/freemarker/core/templateresolver/impl/StrongCacheStorage.java
index fa13778..8447db8 100644
--- a/src/main/java/org/apache/freemarker/core/templateresolver/impl/StrongCacheStorage.java
+++ b/src/main/java/org/apache/freemarker/core/templateresolver/impl/StrongCacheStorage.java
@@ -40,18 +40,22 @@ public class StrongCacheStorage implements ConcurrentCacheStorage, CacheStorageW
     /**
      * Always returns {@code true}.
      */
+    @Override
     public boolean isConcurrent() {
         return true;
     }
     
+    @Override
     public Object get(Object key) {
         return map.get(key);
     }
 
+    @Override
     public void put(Object key, Object value) {
         map.put(key, value);
     }
 
+    @Override
     public void remove(Object key) {
         map.remove(key);
     }
@@ -61,10 +65,12 @@ public class StrongCacheStorage implements ConcurrentCacheStorage, CacheStorageW
      * 
      * @since 2.3.21
      */
+    @Override
     public int getSize() {
         return map.size();
     }
     
+    @Override
     public void clear() {
         map.clear();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/HtmlEscape.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/HtmlEscape.java b/src/main/java/org/apache/freemarker/core/util/HtmlEscape.java
index c31da70..a686f6e 100644
--- a/src/main/java/org/apache/freemarker/core/util/HtmlEscape.java
+++ b/src/main/java/org/apache/freemarker/core/util/HtmlEscape.java
@@ -60,6 +60,7 @@ public class HtmlEscape implements TemplateTransformModel {
     private static final char[] AMP = "&amp;".toCharArray();
     private static final char[] QUOT = "&quot;".toCharArray();
 
+    @Override
     public Writer getWriter(final Writer out, Map args) {
         return new Writer()
         {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/NormalizeNewlines.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/NormalizeNewlines.java b/src/main/java/org/apache/freemarker/core/util/NormalizeNewlines.java
index 22ffaa4..4e47eb2 100644
--- a/src/main/java/org/apache/freemarker/core/util/NormalizeNewlines.java
+++ b/src/main/java/org/apache/freemarker/core/util/NormalizeNewlines.java
@@ -64,6 +64,7 @@ import org.apache.freemarker.core.model.TemplateTransformModel;
 // [FM3] Remove (or move to o.a.f.test)
 public class NormalizeNewlines implements TemplateTransformModel {
 
+    @Override
     public Writer getWriter(final Writer out,
                             final Map args) {
         final StringBuilder buf = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/StandardCompress.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/StandardCompress.java b/src/main/java/org/apache/freemarker/core/util/StandardCompress.java
index 2e5a9fe..e8519fa 100644
--- a/src/main/java/org/apache/freemarker/core/util/StandardCompress.java
+++ b/src/main/java/org/apache/freemarker/core/util/StandardCompress.java
@@ -88,6 +88,7 @@ public class StandardCompress implements TemplateTransformModel {
         this.defaultBufferSize = defaultBufferSize;
     }
 
+    @Override
     public Writer getWriter(final Writer out, Map args)
     throws TemplateModelException {
         int bufferSize = defaultBufferSize;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/XmlEscape.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/XmlEscape.java b/src/main/java/org/apache/freemarker/core/util/XmlEscape.java
index 009b813..70508eb 100644
--- a/src/main/java/org/apache/freemarker/core/util/XmlEscape.java
+++ b/src/main/java/org/apache/freemarker/core/util/XmlEscape.java
@@ -41,6 +41,7 @@ public class XmlEscape implements TemplateTransformModel {
     private static final char[] QUOT = "&quot;".toCharArray();
     private static final char[] APOS = "&apos;".toCharArray();
 
+    @Override
     public Writer getWriter(final Writer out, Map args) {
         return new Writer()
         {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/_ArrayEnumeration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/_ArrayEnumeration.java b/src/main/java/org/apache/freemarker/core/util/_ArrayEnumeration.java
index a5ca102..d16afac 100644
--- a/src/main/java/org/apache/freemarker/core/util/_ArrayEnumeration.java
+++ b/src/main/java/org/apache/freemarker/core/util/_ArrayEnumeration.java
@@ -35,10 +35,12 @@ public class _ArrayEnumeration implements Enumeration {
         this.nextIndex = 0;
     }
 
+    @Override
     public boolean hasMoreElements() {
         return nextIndex < size;
     }
 
+    @Override
     public Object nextElement() {
         if (nextIndex >= size) {
             throw new NoSuchElementException();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java b/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java
index 7617407..4bcd654 100644
--- a/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java
+++ b/src/main/java/org/apache/freemarker/core/util/_ArrayIterator.java
@@ -33,10 +33,12 @@ public class _ArrayIterator implements Iterator {
         this.nextIndex = 0;
     }
 
+    @Override
     public boolean hasNext() {
         return nextIndex < array.length;
     }
 
+    @Override
     public Object next() {
         if (nextIndex >= array.length) {
             throw new NoSuchElementException();
@@ -44,6 +46,7 @@ public class _ArrayIterator implements Iterator {
         return array[nextIndex++];
     }
 
+    @Override
     public void remove() {
         throw new UnsupportedOperationException();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/_DateUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/_DateUtil.java b/src/main/java/org/apache/freemarker/core/util/_DateUtil.java
index b79c0bd..5f38549 100644
--- a/src/main/java/org/apache/freemarker/core/util/_DateUtil.java
+++ b/src/main/java/org/apache/freemarker/core/util/_DateUtil.java
@@ -844,6 +844,7 @@ public class _DateUtil {
         private GregorianCalendar calendar;
         private TimeZone lastlySetTimeZone;
     
+        @Override
         public GregorianCalendar get(TimeZone tz, Date date) {
             if (calendar == null) {
                 calendar = new GregorianCalendar(tz, Locale.US);
@@ -870,8 +871,9 @@ public class _DateUtil {
         private GregorianCalendar calendar;
         private TimeZone lastlySetTimeZone;
 
+        @Override
         public Date calculate(int era, int year, int month, int day, int hours, int minutes, int secs, int millisecs,
-                boolean addOneDay, TimeZone tz) {
+                              boolean addOneDay, TimeZone tz) {
             if (calendar == null) {
                 calendar = new GregorianCalendar(tz, Locale.US);
                 calendar.setLenient(false);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java b/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java
index b64ab10..b194a06 100644
--- a/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java
+++ b/src/main/java/org/apache/freemarker/core/util/_UnmodifiableCompositeSet.java
@@ -54,6 +54,7 @@ public class _UnmodifiableCompositeSet<E> extends _UnmodifiableSet<E> {
         private Iterator<E> it1, it2;
         private boolean it1Deplected;
         
+        @Override
         public boolean hasNext() {
             if (!it1Deplected) {
                 if (it1 == null) {
@@ -71,6 +72,7 @@ public class _UnmodifiableCompositeSet<E> extends _UnmodifiableSet<E> {
             return it2.hasNext();
         }
 
+        @Override
         public E next() {
             if (!it1Deplected) {
                 if (it1 == null) {
@@ -88,6 +90,7 @@ public class _UnmodifiableCompositeSet<E> extends _UnmodifiableSet<E> {
             return it2.next();
         }
 
+        @Override
         public void remove() {
             throw new UnsupportedOperationException();
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/HttpRequestHashModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/HttpRequestHashModel.java b/src/main/java/org/apache/freemarker/servlet/HttpRequestHashModel.java
index 2de6814..eaf024f 100644
--- a/src/main/java/org/apache/freemarker/servlet/HttpRequestHashModel.java
+++ b/src/main/java/org/apache/freemarker/servlet/HttpRequestHashModel.java
@@ -59,14 +59,17 @@ public final class HttpRequestHashModel implements TemplateHashModelEx {
         this.wrapper = wrapper;
     }
     
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         return wrapper.wrap(request.getAttribute(key));
     }
 
+    @Override
     public boolean isEmpty() {
         return !request.getAttributeNames().hasMoreElements();
     }
     
+    @Override
     public int size() {
         int result = 0;
         for (Enumeration enumeration = request.getAttributeNames(); enumeration.hasMoreElements(); ) {
@@ -76,6 +79,7 @@ public final class HttpRequestHashModel implements TemplateHashModelEx {
         return result;
     }
     
+    @Override
     public TemplateCollectionModel keys() {
         ArrayList keys = new ArrayList();
         for (Enumeration enumeration = request.getAttributeNames(); enumeration.hasMoreElements(); ) {
@@ -84,6 +88,7 @@ public final class HttpRequestHashModel implements TemplateHashModelEx {
         return new SimpleCollection(keys.iterator());
     }
     
+    @Override
     public TemplateCollectionModel values() {
         ArrayList values = new ArrayList();
         for (Enumeration enumeration = request.getAttributeNames(); enumeration.hasMoreElements(); ) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/HttpRequestParametersHashModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/HttpRequestParametersHashModel.java b/src/main/java/org/apache/freemarker/servlet/HttpRequestParametersHashModel.java
index 6a1b4bb..b582a1f 100644
--- a/src/main/java/org/apache/freemarker/servlet/HttpRequestParametersHashModel.java
+++ b/src/main/java/org/apache/freemarker/servlet/HttpRequestParametersHashModel.java
@@ -46,33 +46,41 @@ public class HttpRequestParametersHashModel
         this.request = request;
     }
 
+    @Override
     public TemplateModel get(String key) {
         String value = request.getParameter(key);
         return value == null ? null : new SimpleScalar(value);
     }
 
+    @Override
     public boolean isEmpty() {
         return !request.getParameterNames().hasMoreElements();
     }
     
+    @Override
     public int size() {
         return getKeys().size();
     }
     
+    @Override
     public TemplateCollectionModel keys() {
         return new SimpleCollection(getKeys().iterator());
     }
     
+    @Override
     public TemplateCollectionModel values() {
         final Iterator iter = getKeys().iterator();
         return new SimpleCollection(
             new Iterator() {
+                @Override
                 public boolean hasNext() {
                     return iter.hasNext();
                 }
+                @Override
                 public Object next() {
                     return request.getParameter((String) iter.next()); 
                 }
+                @Override
                 public void remove() {
                     throw new UnsupportedOperationException();
                 }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/HttpSessionHashModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/HttpSessionHashModel.java b/src/main/java/org/apache/freemarker/servlet/HttpSessionHashModel.java
index 23dc80e..405f710 100644
--- a/src/main/java/org/apache/freemarker/servlet/HttpSessionHashModel.java
+++ b/src/main/java/org/apache/freemarker/servlet/HttpSessionHashModel.java
@@ -77,6 +77,7 @@ public final class HttpSessionHashModel implements TemplateHashModel, Serializab
         this.response = response;
     }
 
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         checkSessionExistence();
         return wrapper.wrap(session != null ? session.getAttribute(key) : null);
@@ -103,6 +104,7 @@ public final class HttpSessionHashModel implements TemplateHashModel, Serializab
             (session == null && request == null);
     }
     
+    @Override
     public boolean isEmpty()
     throws TemplateModelException {
         checkSessionExistence();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/IncludePage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/IncludePage.java b/src/main/java/org/apache/freemarker/servlet/IncludePage.java
index c4b9310..2889ab2 100644
--- a/src/main/java/org/apache/freemarker/servlet/IncludePage.java
+++ b/src/main/java/org/apache/freemarker/servlet/IncludePage.java
@@ -68,8 +68,9 @@ public class IncludePage implements TemplateDirectiveModel {
         this.response = response;
     }
     
-    public void execute(final Environment env, Map params, 
-            TemplateModel[] loopVars, TemplateDirectiveBody body)
+    @Override
+    public void execute(final Environment env, Map params,
+                        TemplateModel[] loopVars, TemplateDirectiveBody body)
     throws TemplateException, IOException {
         // Determine the path
         final TemplateModel path = (TemplateModel) params.get("path");

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/ServletContextHashModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/ServletContextHashModel.java b/src/main/java/org/apache/freemarker/servlet/ServletContextHashModel.java
index fcd0cc1..29b12d8 100644
--- a/src/main/java/org/apache/freemarker/servlet/ServletContextHashModel.java
+++ b/src/main/java/org/apache/freemarker/servlet/ServletContextHashModel.java
@@ -54,10 +54,12 @@ public final class ServletContextHashModel implements TemplateHashModel {
         this.wrapper = wrapper;
     }
 
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         return wrapper.wrap(servletctx.getAttribute(key));
     }
 
+    @Override
     public boolean isEmpty() {
         return !servletctx.getAttributeNames().hasMoreElements();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java b/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java
index 9e87e01..5af65f2 100644
--- a/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java
+++ b/src/main/java/org/apache/freemarker/servlet/jsp/CustomTagAndELFunctionCombiner.java
@@ -104,23 +104,28 @@ class CustomTagAndELFunctionCombiner {
             this.simpleMethodModel = simpleMethodModel;
         }
 
+        @Override
         public Object exec(List arguments) throws TemplateModelException {
             return simpleMethodModel.exec(arguments);
         }
 
+        @Override
         public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                 throws TemplateException, IOException {
             templateDirectiveModel.execute(env, params, loopVars, body);
         }
 
+        @Override
         public Object[] explainTypeError(Class[] expectedClasses) {
             return simpleMethodModel.explainTypeError(expectedClasses);
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return simpleMethodModel.get(index);
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return simpleMethodModel.size();
         }
@@ -139,10 +144,12 @@ class CustomTagAndELFunctionCombiner {
             this.templateMethodModelEx = templateMethodModelEx;
         }
 
+        @Override
         public Object exec(List arguments) throws TemplateModelException {
             return templateMethodModelEx.exec(arguments);
         }
 
+        @Override
         public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                 throws TemplateException, IOException {
             templateDirectiveModel.execute(env, params, loopVars, body);
@@ -162,10 +169,12 @@ class CustomTagAndELFunctionCombiner {
             this.templateMethodModelEx = templateMethodModelEx;
         }
 
+        @Override
         public Object exec(List arguments) throws TemplateModelException {
             return templateMethodModelEx.exec(arguments);
         }
 
+        @Override
         public Writer getWriter(Writer out, Map args) throws TemplateModelException, IOException {
             return templateTransformModel.getWriter(out, args);
         }
@@ -185,22 +194,27 @@ class CustomTagAndELFunctionCombiner {
             this.simpleMethodModel = simpleMethodModel;
         }
 
+        @Override
         public Object exec(List arguments) throws TemplateModelException {
             return simpleMethodModel.exec(arguments);
         }
 
+        @Override
         public Object[] explainTypeError(Class[] expectedClasses) {
             return simpleMethodModel.explainTypeError(expectedClasses);
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return simpleMethodModel.get(index);
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return simpleMethodModel.size();
         }
 
+        @Override
         public Writer getWriter(Writer out, Map args) throws TemplateModelException, IOException {
             return templateTransformModel.getWriter(out, args);
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/jsp/FreeMarkerPageContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/jsp/FreeMarkerPageContext.java b/src/main/java/org/apache/freemarker/servlet/jsp/FreeMarkerPageContext.java
index 0abe393..8b413f7 100644
--- a/src/main/java/org/apache/freemarker/servlet/jsp/FreeMarkerPageContext.java
+++ b/src/main/java/org/apache/freemarker/servlet/jsp/FreeMarkerPageContext.java
@@ -473,6 +473,7 @@ public JspWriter pushBody(Writer w) {
             it = hashEx.keys().iterator();
         }
         
+        @Override
         public boolean hasMoreElements() {
             try {
                 return it.hasNext();
@@ -481,6 +482,7 @@ public JspWriter pushBody(Writer w) {
             }
         }
         
+        @Override
         public Object nextElement() {
             try {
                 return ((TemplateScalarModel) it.next()).getAsString();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/jsp/FreemarkerTag.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/jsp/FreemarkerTag.java b/src/main/java/org/apache/freemarker/servlet/jsp/FreemarkerTag.java
index df8fb5b..da77b7d 100644
--- a/src/main/java/org/apache/freemarker/servlet/jsp/FreemarkerTag.java
+++ b/src/main/java/org/apache/freemarker/servlet/jsp/FreemarkerTag.java
@@ -57,40 +57,49 @@ public class FreemarkerTag implements BodyTag {
         this.name = name == null ? "" : name;
     }
     
+    @Override
     public Tag getParent() {
         return parent;
     }
 
+    @Override
     public void setParent(Tag parent) {
         this.parent = parent;
     }
 
+    @Override
     public int doStartTag() {
         return EVAL_BODY_BUFFERED;
     }
 
+    @Override
     public void setBodyContent(BodyContent bodyContent) {
         this.bodyContent = bodyContent;
     }
 
+    @Override
     public void setPageContext(PageContext pageContext) {
         this.pageContext = pageContext;
         root = null;
     }
 
+    @Override
     public void doInitBody() {
     }
 
+    @Override
     public int doAfterBody() {
         return SKIP_BODY;
     }
 
+    @Override
     public void release() {
         root = null;
         template = null;
         name = "";
     }
 
+    @Override
     public int doEndTag()
         throws JspException {
         if (bodyContent == null)

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java b/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java
index f3ff665..687f9b3 100644
--- a/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java
+++ b/src/main/java/org/apache/freemarker/servlet/jsp/SimpleTagDirectiveModel.java
@@ -52,8 +52,9 @@ class SimpleTagDirectiveModel extends JspTagModelBase implements TemplateDirecti
         }
     }
 
-    public void execute(Environment env, Map args, TemplateModel[] outArgs, 
-            final TemplateDirectiveBody body) 
+    @Override
+    public void execute(Environment env, Map args, TemplateModel[] outArgs,
+                        final TemplateDirectiveBody body)
     throws TemplateException, IOException {
         try {
             SimpleTag tag = (SimpleTag) getTagInstance();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/MockServletContext.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/MockServletContext.java b/src/test/java/org/apache/freemarker/core/MockServletContext.java
index 558d410..64f0efb 100644
--- a/src/test/java/org/apache/freemarker/core/MockServletContext.java
+++ b/src/test/java/org/apache/freemarker/core/MockServletContext.java
@@ -31,101 +31,126 @@ import javax.servlet.ServletException;
 
 public class MockServletContext implements ServletContext {
 
+    @Override
     public Object getAttribute(String arg0) {
         return null;
     }
 
+    @Override
     public Enumeration getAttributeNames() {
         return null;
     }
 
+    @Override
     public ServletContext getContext(String arg0) {
         return null;
     }
 
+    @Override
     public String getContextPath() {
         return "/myapp";
     }
 
+    @Override
     public String getInitParameter(String arg0) {
         return null;
     }
 
+    @Override
     public Enumeration getInitParameterNames() {
         return null;
     }
 
+    @Override
     public int getMajorVersion() {
         return 0;
     }
 
+    @Override
     public String getMimeType(String arg0) {
         return null;
     }
 
+    @Override
     public int getMinorVersion() {
         return 0;
     }
 
+    @Override
     public RequestDispatcher getNamedDispatcher(String arg0) {
         return null;
     }
 
+    @Override
     public String getRealPath(String arg0) {
         return null;
     }
 
+    @Override
     public RequestDispatcher getRequestDispatcher(String arg0) {
         return null;
     }
 
+    @Override
     public URL getResource(String arg0) throws MalformedURLException {
         return null;
     }
 
+    @Override
     public InputStream getResourceAsStream(String arg0) {
         return null;
     }
 
+    @Override
     public Set getResourcePaths(String arg0) {
         return null;
     }
 
+    @Override
     public String getServerInfo() {
         return null;
     }
 
+    @Override
     public Servlet getServlet(String arg0) throws ServletException {
         return null;
     }
 
+    @Override
     public String getServletContextName() {
         return "MyApp";
     }
 
+    @Override
     public Enumeration getServletNames() {
         return null;
     }
 
+    @Override
     public Enumeration getServlets() {
         return null;
     }
 
+    @Override
     public void log(String arg0) {
         
     }
 
+    @Override
     public void log(Exception arg0, String arg1) {
         
     }
 
+    @Override
     public void log(String arg0, Throwable arg1) {
         
     }
 
+    @Override
     public void removeAttribute(String arg0) {
     }
 
+    @Override
     public void setAttribute(String arg0, Object arg1) {
     }
     

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/ast/AppMetaTemplateDateFormatFactory.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ast/AppMetaTemplateDateFormatFactory.java b/src/test/java/org/apache/freemarker/core/ast/AppMetaTemplateDateFormatFactory.java
index 1bec5bd..3205181 100644
--- a/src/test/java/org/apache/freemarker/core/ast/AppMetaTemplateDateFormatFactory.java
+++ b/src/test/java/org/apache/freemarker/core/ast/AppMetaTemplateDateFormatFactory.java
@@ -110,10 +110,12 @@ public class AppMetaTemplateDateFormatFactory extends TemplateDateFormatFactory
             this.appMeta = appMeta;
         }
 
+        @Override
         public Date getAsDate() throws TemplateModelException {
             return date;
         }
 
+        @Override
         public int getDateType() {
             return dateType;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/ast/DateFormatTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ast/DateFormatTest.java b/src/test/java/org/apache/freemarker/core/ast/DateFormatTest.java
index b80cb2d..a0c7f95 100644
--- a/src/test/java/org/apache/freemarker/core/ast/DateFormatTest.java
+++ b/src/test/java/org/apache/freemarker/core/ast/DateFormatTest.java
@@ -449,10 +449,12 @@ public class DateFormatTest extends TemplateTest {
             this.date = date;
         }
 
+        @Override
         public Date getAsDate() throws TemplateModelException {
             return date;
         }
 
+        @Override
         public int getDateType() {
             return DATETIME;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/ast/DirectiveCallPlaceTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ast/DirectiveCallPlaceTest.java b/src/test/java/org/apache/freemarker/core/ast/DirectiveCallPlaceTest.java
index 4000e39..24e0a31 100644
--- a/src/test/java/org/apache/freemarker/core/ast/DirectiveCallPlaceTest.java
+++ b/src/test/java/org/apache/freemarker/core/ast/DirectiveCallPlaceTest.java
@@ -123,6 +123,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
             cacheRecreationCount.set(0);
         }
         
+        @Override
         public void execute(Environment env, Map params, TemplateModel[] loopVars, final TemplateDirectiveBody body)
                 throws TemplateException, IOException {
             if (body == null) {
@@ -137,6 +138,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
                     convertedText = (String) callPlace.getOrCreateCustomData(
                             getTextConversionIdentity(), new ObjectFactory<String>() {
 
+                                @Override
                                 public String createObject() throws TemplateException, IOException {
                                     return convertBodyText(body)
                                             + "[cached " + cacheRecreationCount.incrementAndGet() + "]";
@@ -196,6 +198,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
     
     private static class PositionAwareDirective implements TemplateDirectiveModel {
 
+        @Override
         public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                 throws TemplateException, IOException {
             Writer out = env.getOut();
@@ -224,6 +227,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
 
     private static class ArgPrinterDirective implements TemplateDirectiveModel {
 
+        @Override
         public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                 throws TemplateException, IOException {
             final Writer out = env.getOut();
@@ -243,6 +247,7 @@ public class DirectiveCallPlaceTest extends TemplateTest {
     
     private static class CurDirLineScalar implements TemplateScalarModel {
 
+        @Override
         public String getAsString() throws TemplateModelException {
             DirectiveCallPlace callPlace = Environment.getCurrentEnvironment().getCurrentDirectiveCallPlace();
             return callPlace != null

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/ast/EnvironmentGetTemplateVariantsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ast/EnvironmentGetTemplateVariantsTest.java b/src/test/java/org/apache/freemarker/core/ast/EnvironmentGetTemplateVariantsTest.java
index 7c81954..2243e6f 100644
--- a/src/test/java/org/apache/freemarker/core/ast/EnvironmentGetTemplateVariantsTest.java
+++ b/src/test/java/org/apache/freemarker/core/ast/EnvironmentGetTemplateVariantsTest.java
@@ -209,6 +209,7 @@ public class EnvironmentGetTemplateVariantsTest extends TemplateTest {
     protected Object createDataModel() {
         return Collections.singletonMap("tNames", new TemplateDirectiveModel() {
 
+            @Override
             public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                     throws TemplateException, IOException {
                 Writer out = env.getOut();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/ast/NumberFormatTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ast/NumberFormatTest.java b/src/test/java/org/apache/freemarker/core/ast/NumberFormatTest.java
index bdcc8c2..3699d83 100644
--- a/src/test/java/org/apache/freemarker/core/ast/NumberFormatTest.java
+++ b/src/test/java/org/apache/freemarker/core/ast/NumberFormatTest.java
@@ -186,6 +186,7 @@ public class NumberFormatTest extends TemplateTest {
         addToDataModel("n", nm);
         addToDataModel("incN", new TemplateDirectiveModel() {
             
+            @Override
             public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                     throws TemplateException, IOException {
                 nm.setNumber(nm.getAsNumber().intValue() + 1);
@@ -327,6 +328,7 @@ public class NumberFormatTest extends TemplateTest {
             this.number = number;
         }
 
+        @Override
         public Number getAsNumber() throws TemplateModelException {
             return number;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/ast/TheadInterruptingSupportTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/ast/TheadInterruptingSupportTest.java b/src/test/java/org/apache/freemarker/core/ast/TheadInterruptingSupportTest.java
index 59aae80..d6b8a4e 100644
--- a/src/test/java/org/apache/freemarker/core/ast/TheadInterruptingSupportTest.java
+++ b/src/test/java/org/apache/freemarker/core/ast/TheadInterruptingSupportTest.java
@@ -121,6 +121,7 @@ public class TheadInterruptingSupportTest {
 
         public class StartedDirective implements TemplateDirectiveModel {
             
+            @Override
             public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                     throws TemplateException, IOException {
                 synchronized (TemplateRunnerThread.this) {
@@ -133,6 +134,7 @@ public class TheadInterruptingSupportTest {
 
         public class CustomLoopDirective implements TemplateDirectiveModel {
 
+            @Override
             public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                     throws TemplateException, IOException {
                 while (true) {
@@ -144,6 +146,7 @@ public class TheadInterruptingSupportTest {
         
         public class SleepDirective implements TemplateDirectiveModel {
 
+            @Override
             public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
                     throws TemplateException, IOException {
                 try {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/model/impl/beans/AlphabeticalMethodSorter.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/beans/AlphabeticalMethodSorter.java b/src/test/java/org/apache/freemarker/core/model/impl/beans/AlphabeticalMethodSorter.java
index 357624b..473ad38 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/beans/AlphabeticalMethodSorter.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/beans/AlphabeticalMethodSorter.java
@@ -35,9 +35,11 @@ class AlphabeticalMethodSorter implements MethodSorter {
         this.desc = desc;
     }
 
+    @Override
     public MethodDescriptor[] sortMethodDescriptors(MethodDescriptor[] methodDescriptors) {
         ArrayList<MethodDescriptor> ls = new ArrayList<>(Arrays.asList(methodDescriptors));
         Collections.sort(ls, new Comparator<MethodDescriptor>() {
+            @Override
             public int compare(MethodDescriptor o1, MethodDescriptor o2) {
                 int res = o1.getMethod().toString().compareTo(o2.getMethod().toString());
                 return desc ? -res : res;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperCachesTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperCachesTest.java b/src/test/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperCachesTest.java
index 52cf3a9..dc8ae43 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperCachesTest.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperCachesTest.java
@@ -54,6 +54,7 @@ public class BeansWrapperCachesTest {
         checkRegisteredModelFactories(ci3, bw.getStaticModels(), bw.getEnumModels(), bw.getModelCache());
         
         MethodAppearanceFineTuner maf = new MethodAppearanceFineTuner() {
+            @Override
             public void process(MethodAppearanceDecisionInput in, MethodAppearanceDecision out) {
                 // nop
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/model/impl/beans/GetlessMethodsAsPropertyGettersRule.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/beans/GetlessMethodsAsPropertyGettersRule.java b/src/test/java/org/apache/freemarker/core/model/impl/beans/GetlessMethodsAsPropertyGettersRule.java
index fa135f2..ae6d7f1 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/beans/GetlessMethodsAsPropertyGettersRule.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/beans/GetlessMethodsAsPropertyGettersRule.java
@@ -35,6 +35,7 @@ class GetlessMethodsAsPropertyGettersRule implements MethodAppearanceFineTuner,
     // Can't be constructed from outside
     private GetlessMethodsAsPropertyGettersRule() { }
 
+    @Override
     public void process(
             MethodAppearanceDecisionInput in, MethodAppearanceDecision out) {
         legacyProcess(in.getContainingClass(), in.getMethod(), out);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/model/impl/beans/Java7MembersOnlyBeansWrapper.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/beans/Java7MembersOnlyBeansWrapper.java b/src/test/java/org/apache/freemarker/core/model/impl/beans/Java7MembersOnlyBeansWrapper.java
index 621fc8e..547917d 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/beans/Java7MembersOnlyBeansWrapper.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/beans/Java7MembersOnlyBeansWrapper.java
@@ -47,6 +47,7 @@ public class Java7MembersOnlyBeansWrapper extends BeansWrapper {
     
     MethodAppearanceFineTuner POST_JAVA_7_FILTER = new MethodAppearanceFineTuner() {
 
+        @Override
         public void process(MethodAppearanceDecisionInput in, MethodAppearanceDecision out) {
             Method m = in.getMethod();
             Class declCl = m.getDeclaringClass();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java b/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
index ce9c40e..c784e95 100644
--- a/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
+++ b/src/test/java/org/apache/freemarker/core/model/impl/beans/TypeFlagsTest.java
@@ -562,48 +562,60 @@ public class TypeFlagsTest extends TestCase {
 
     static public class MapDate extends Date implements Map {
     
+        @Override
         public int size() {
             return 0;
         }
     
+        @Override
         public boolean isEmpty() {
             return false;
         }
     
+        @Override
         public boolean containsKey(Object key) {
             return false;
         }
     
+        @Override
         public boolean containsValue(Object value) {
             return false;
         }
     
+        @Override
         public Object get(Object key) {
             return null;
         }
     
+        @Override
         public Object put(Object key, Object value) {
             return null;
         }
     
+        @Override
         public Object remove(Object key) {
             return null;
         }
     
+        @Override
         public void putAll(Map m) {
         }
     
+        @Override
         public void clear() {
         }
     
+        @Override
         public Set keySet() {
             return null;
         }
     
+        @Override
         public Collection values() {
             return null;
         }
     
+        @Override
         public Set entrySet() {
             return null;
         }
@@ -621,6 +633,7 @@ public class TypeFlagsTest extends TestCase {
         }
         // As the order in which getMethods() returns the methods is undefined, we sort them for test predictability: 
         Collections.sort(filteredMethods, new Comparator<Method>() {
+            @Override
             public int compare(Method o1, Method o2) {
                 int res = o1.toString().compareTo(o2.toString());
                 return desc ? -res : res;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/manualtest/UnitAwareTemplateNumberModel.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/manualtest/UnitAwareTemplateNumberModel.java b/src/test/java/org/apache/freemarker/manualtest/UnitAwareTemplateNumberModel.java
index b50bcd8..dbd6a60 100644
--- a/src/test/java/org/apache/freemarker/manualtest/UnitAwareTemplateNumberModel.java
+++ b/src/test/java/org/apache/freemarker/manualtest/UnitAwareTemplateNumberModel.java
@@ -31,6 +31,7 @@ public class UnitAwareTemplateNumberModel implements TemplateNumberModel {
         this.unit = unit;
     }
 
+    @Override
     public Number getAsNumber() throws TemplateModelException {
         return value;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java b/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java
index 6232e91..8cfdf57 100644
--- a/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java
+++ b/src/test/java/org/apache/freemarker/servlet/jsp/RealServletContainertTest.java
@@ -337,14 +337,17 @@ public class RealServletContainertTest extends WebAppTestCase {
                 this.value = value;
             }
 
+            @Override
             public String getKey() {
                 return key;
             }
 
+            @Override
             public Integer getValue() {
                 return value;
             }
 
+            @Override
             public Integer setValue(Integer value) {
                 throw new UnsupportedOperationException();
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java b/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
index 594df00..5825a56 100644
--- a/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
+++ b/src/test/java/org/apache/freemarker/servlet/jsp/TLDParsingTest.java
@@ -131,7 +131,9 @@ public class TLDParsingTest {
     }
     
     public static class ExampleContextListener implements ServletContextListener {
+        @Override
         public void contextInitialized(ServletContextEvent event) { }
+        @Override
         public void contextDestroyed(ServletContextEvent event) { }
     }    
     

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/servlet/jsp/taglibmembers/TestTag.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/servlet/jsp/taglibmembers/TestTag.java b/src/test/java/org/apache/freemarker/servlet/jsp/taglibmembers/TestTag.java
index 8a30bcd..68954ab 100644
--- a/src/test/java/org/apache/freemarker/servlet/jsp/taglibmembers/TestTag.java
+++ b/src/test/java/org/apache/freemarker/servlet/jsp/taglibmembers/TestTag.java
@@ -77,10 +77,12 @@ public class TestTag extends BodyTagSupport implements TryCatchFinally {
         }
     }
     
+    @Override
     public void doCatch(Throwable t) throws Throwable {
         pageContext.getOut().println("doCatch() called here with " + t.getClass() + ": " + getFirstLine(t.getMessage()));
     }
 
+    @Override
     public void doFinally() {
         try {
             pageContext.getOut().println("doFinally() called here");

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/servlet/DefaultModel2TesterAction.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/servlet/DefaultModel2TesterAction.java b/src/test/java/org/apache/freemarker/test/servlet/DefaultModel2TesterAction.java
index d34f277..1bf3b14 100644
--- a/src/test/java/org/apache/freemarker/test/servlet/DefaultModel2TesterAction.java
+++ b/src/test/java/org/apache/freemarker/test/servlet/DefaultModel2TesterAction.java
@@ -36,6 +36,7 @@ public class DefaultModel2TesterAction implements Model2Action {
     
     protected DefaultModel2TesterAction() { }
 
+    @Override
     @SuppressWarnings("boxing")
     public String execute(HttpServletRequest req, HttpServletResponse resp) throws Exception {
         req.setAttribute("s", "abc");

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java b/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
index 6075e1f..80879b9 100644
--- a/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
+++ b/src/test/java/org/apache/freemarker/test/templatesuite/models/AllTemplateModels.java
@@ -44,10 +44,12 @@ public class AllTemplateModels implements
     
     private final TemplateModelIterator EMPTY_ITERATOR = new TemplateModelIterator() {
 
+        @Override
         public TemplateModel next() throws TemplateModelException {
             return null;
         }
 
+        @Override
         public boolean hasNext() throws TemplateModelException {
             return false;
         }
@@ -56,56 +58,69 @@ public class AllTemplateModels implements
     
     private final TemplateCollectionModel EMPTY_COLLECTION = new TemplateCollectionModel() {
 
+        @Override
         public TemplateModelIterator iterator() throws TemplateModelException {
             return EMPTY_ITERATOR;
         }
     };
     
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         return new SimpleScalar("value for key " + key);
     }
 
+    @Override
     public boolean isEmpty() throws TemplateModelException {
         return true;
     }
 
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         return EMPTY_ITERATOR;
     }
 
+    @Override
     public TemplateModel get(int index) throws TemplateModelException {
         return null;
     }
 
+    @Override
     public int size() throws TemplateModelException {
         return 0;
     }
 
+    @Override
     public TemplateCollectionModel keys() throws TemplateModelException {
         return EMPTY_COLLECTION;
     }
 
+    @Override
     public TemplateCollectionModel values() throws TemplateModelException {
         return EMPTY_COLLECTION;
     }
 
+    @Override
     public boolean getAsBoolean() throws TemplateModelException {
         return true;
     }
 
+    @Override
     public Date getAsDate() throws TemplateModelException {
         return new Date(0);
     }
 
+    @Override
     public int getDateType() {
         return TemplateDateModel.DATETIME;
     }
 
+    @Override
     @SuppressWarnings("boxing")
     public Number getAsNumber() throws TemplateModelException {
         return 1;
     }
 
+    @Override
     public String getAsString() throws TemplateModelException {
         return "s";
     }



[3/4] incubator-freemarker git commit: Added missing @Override annotations (which were illegal on Java 5)

Posted by dd...@apache.org.
Added missing @Override annotations (which were illegal on Java 5)


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

Branch: refs/heads/3
Commit: 693a94c45fc91d2cb1e2f45d0fdfa5bb8a09b997
Parents: ac66267
Author: ddekany <dd...@apache.org>
Authored: Fri Feb 17 15:21:17 2017 +0100
Committer: ddekany <dd...@apache.org>
Committed: Fri Feb 17 15:21:17 2017 +0100

----------------------------------------------------------------------
 .../freemarker/core/TemplateException.java      |  8 +++++
 .../core/TemplateExceptionHandler.java          |  4 +++
 .../core/ast/AddConcatExpression.java           |  7 +++++
 .../freemarker/core/ast/BlockAssignment.java    |  1 +
 .../freemarker/core/ast/BodyInstruction.java    |  2 ++
 .../freemarker/core/ast/BoundedRangeModel.java  |  1 +
 .../freemarker/core/ast/BuiltInsForDates.java   |  1 +
 .../core/ast/BuiltInsForLoopVariables.java      |  1 +
 .../freemarker/core/ast/BuiltInsForNodes.java   |  1 +
 .../core/ast/BuiltInsForSequences.java          | 16 ++++++++++
 .../core/ast/BuiltInsForStringsRegexp.java      | 13 ++++++++
 .../freemarker/core/ast/BuiltinVariable.java    |  2 ++
 .../core/ast/CollectionAndSequence.java         |  5 ++++
 .../ast/CommonTemplateMarkupOutputModel.java    |  1 +
 .../core/ast/DefaultToExpression.java           | 21 ++++++++-----
 .../freemarker/core/ast/ExistenceBuiltins.java  |  2 ++
 .../freemarker/core/ast/FreeMarkerTree.java     |  9 ++++++
 .../apache/freemarker/core/ast/Interpret.java   |  1 +
 .../ast/ListableRightUnboundedRangeModel.java   |  4 +++
 ...eleaserTemplateSpecifiedEncodingHandler.java |  1 +
 .../apache/freemarker/core/ast/MiscUtil.java    |  1 +
 .../NonListableRightUnboundedRangeModel.java    |  1 +
 .../freemarker/core/ast/NumberLiteral.java      |  1 +
 .../apache/freemarker/core/ast/RangeModel.java  |  1 +
 .../core/ast/StringArraySequence.java           |  2 ++
 .../freemarker/core/debug/Breakpoint.java       |  1 +
 .../freemarker/core/debug/DebuggerClient.java   | 11 ++++++-
 .../core/debug/impl/RmiDebugModelImpl.java      | 13 ++++++++
 .../core/debug/impl/RmiDebuggerImpl.java        |  9 ++++++
 .../apache/freemarker/core/model/Constants.java | 10 +++++++
 .../core/model/FalseTemplateBooleanModel.java   |  1 +
 .../core/model/TemplateMethodModelEx.java       |  1 +
 .../core/model/TrueTemplateBooleanModel.java    |  1 +
 .../core/model/impl/DefaultArrayAdapter.java    | 31 ++++++++++++++++++++
 .../core/model/impl/DefaultIterableAdapter.java |  4 +++
 .../core/model/impl/DefaultIteratorAdapter.java |  5 ++++
 .../core/model/impl/DefaultListAdapter.java     |  6 ++++
 .../core/model/impl/DefaultMapAdapter.java      |  9 ++++++
 .../impl/DefaultNonListCollectionAdapter.java   |  7 +++++
 .../model/impl/DefaultObjectWrapperBuilder.java |  1 +
 .../DefaultUnassignableIteratorAdapter.java     |  2 ++
 .../model/impl/MapKeyValuePairIterator.java     |  4 +++
 .../core/model/impl/SimpleCollection.java       |  3 ++
 .../freemarker/core/model/impl/SimpleDate.java  |  2 ++
 .../core/model/impl/SimpleNumber.java           |  1 +
 .../core/model/impl/SimpleScalar.java           |  1 +
 .../model/impl/TemplateModelListSequence.java   |  2 ++
 .../core/model/impl/beans/ArrayModel.java       |  7 +++++
 .../model/impl/beans/BeansWrapperBuilder.java   |  1 +
 .../core/model/impl/beans/BooleanModel.java     |  1 +
 .../impl/beans/ClassBasedModelFactory.java      |  2 ++
 .../model/impl/beans/CollectionAdapter.java     |  4 +++
 .../core/model/impl/beans/CollectionModel.java  |  3 ++
 .../core/model/impl/beans/DateModel.java        |  3 ++
 .../core/model/impl/beans/EnumerationModel.java |  3 ++
 .../core/model/impl/beans/HashAdapter.java      |  7 +++++
 .../core/model/impl/beans/IteratorModel.java    |  3 ++
 .../impl/beans/JRebelClassChangeNotifier.java   |  2 ++
 .../core/model/impl/beans/MapModel.java         |  2 ++
 .../core/model/impl/beans/NumberModel.java      |  2 ++
 .../impl/beans/OverloadedMethodsModel.java      |  3 ++
 .../model/impl/beans/OverloadedNumberUtil.java  |  1 +
 .../model/impl/beans/ResourceBundleModel.java   |  2 ++
 .../core/model/impl/beans/SequenceAdapter.java  |  1 +
 .../core/model/impl/beans/SimpleMapModel.java   | 11 +++++++
 .../model/impl/beans/SimpleMethodModel.java     |  4 +++
 .../core/model/impl/beans/StringModel.java      |  2 ++
 .../core/model/impl/dom/AttributeNodeModel.java |  3 ++
 .../model/impl/dom/CharacterDataNodeModel.java  |  3 ++
 .../core/model/impl/dom/DocumentModel.java      |  2 ++
 .../core/model/impl/dom/DocumentTypeModel.java  |  2 ++
 .../core/model/impl/dom/ElementModel.java       |  3 ++
 .../core/model/impl/dom/PINodeModel.java        |  3 ++
 .../impl/dom/SunInternalXalanXPathSupport.java  |  5 ++++
 .../core/model/impl/dom/XalanXPathSupport.java  |  5 ++++
 .../templateresolver/impl/MruCacheStorage.java  |  5 ++++
 .../templateresolver/impl/NullCacheStorage.java |  6 ++++
 .../templateresolver/impl/SoftCacheStorage.java |  6 ++++
 .../impl/StrongCacheStorage.java                |  6 ++++
 .../apache/freemarker/core/util/HtmlEscape.java |  1 +
 .../freemarker/core/util/NormalizeNewlines.java |  1 +
 .../freemarker/core/util/StandardCompress.java  |  1 +
 .../apache/freemarker/core/util/XmlEscape.java  |  1 +
 .../freemarker/core/util/_ArrayEnumeration.java |  2 ++
 .../freemarker/core/util/_ArrayIterator.java    |  3 ++
 .../apache/freemarker/core/util/_DateUtil.java  |  4 ++-
 .../core/util/_UnmodifiableCompositeSet.java    |  3 ++
 .../servlet/HttpRequestHashModel.java           |  5 ++++
 .../servlet/HttpRequestParametersHashModel.java |  8 +++++
 .../servlet/HttpSessionHashModel.java           |  2 ++
 .../apache/freemarker/servlet/IncludePage.java  |  5 ++--
 .../servlet/ServletContextHashModel.java        |  2 ++
 .../jsp/CustomTagAndELFunctionCombiner.java     | 14 +++++++++
 .../servlet/jsp/FreeMarkerPageContext.java      |  2 ++
 .../freemarker/servlet/jsp/FreemarkerTag.java   |  9 ++++++
 .../servlet/jsp/SimpleTagDirectiveModel.java    |  5 ++--
 .../freemarker/core/MockServletContext.java     | 25 ++++++++++++++++
 .../ast/AppMetaTemplateDateFormatFactory.java   |  2 ++
 .../freemarker/core/ast/DateFormatTest.java     |  2 ++
 .../core/ast/DirectiveCallPlaceTest.java        |  5 ++++
 .../ast/EnvironmentGetTemplateVariantsTest.java |  1 +
 .../freemarker/core/ast/NumberFormatTest.java   |  2 ++
 .../core/ast/TheadInterruptingSupportTest.java  |  3 ++
 .../impl/beans/AlphabeticalMethodSorter.java    |  2 ++
 .../impl/beans/BeansWrapperCachesTest.java      |  1 +
 .../GetlessMethodsAsPropertyGettersRule.java    |  1 +
 .../beans/Java7MembersOnlyBeansWrapper.java     |  1 +
 .../core/model/impl/beans/TypeFlagsTest.java    | 13 ++++++++
 .../UnitAwareTemplateNumberModel.java           |  1 +
 .../servlet/jsp/RealServletContainertTest.java  |  3 ++
 .../freemarker/servlet/jsp/TLDParsingTest.java  |  2 ++
 .../servlet/jsp/taglibmembers/TestTag.java      |  2 ++
 .../test/servlet/DefaultModel2TesterAction.java |  1 +
 .../templatesuite/models/AllTemplateModels.java | 15 ++++++++++
 .../models/BooleanAndScalarModel.java           |  2 ++
 .../models/BooleanAndStringTemplateModel.java   |  2 ++
 .../test/templatesuite/models/BooleanHash1.java |  2 ++
 .../test/templatesuite/models/BooleanHash2.java |  2 ++
 .../test/templatesuite/models/BooleanList1.java |  2 ++
 .../test/templatesuite/models/BooleanList2.java |  2 ++
 .../templatesuite/models/ExceptionModel.java    |  1 +
 .../models/HashAndScalarModel.java              |  9 ++++++
 .../test/templatesuite/models/Listables.java    |  5 ++++
 .../test/templatesuite/models/MultiModel1.java  |  5 ++++
 .../test/templatesuite/models/MultiModel2.java  |  2 ++
 .../test/templatesuite/models/MultiModel3.java  |  3 ++
 .../test/templatesuite/models/MultiModel4.java  |  4 +++
 .../test/templatesuite/models/MultiModel5.java  |  4 +++
 .../test/templatesuite/models/NewTestModel.java |  1 +
 .../templatesuite/models/NewTestModel2.java     |  1 +
 .../models/NumberAndStringModel.java            |  6 ++--
 .../models/OverloadedConstructor.java           |  1 +
 .../models/OverloadedMethods2.java              | 12 ++++++++
 .../templatesuite/models/SimpleTestMethod.java  |  1 +
 .../models/TransformHashWrapper.java            |  3 ++
 .../models/TransformMethodWrapper1.java         |  1 +
 .../models/TransformMethodWrapper2.java         |  1 +
 .../templatesuite/models/TransformModel1.java   |  3 +-
 .../freemarker/test/util/AssertDirective.java   |  1 +
 .../test/util/AssertEqualsDirective.java        |  1 +
 .../test/util/AssertFailsDirective.java         |  1 +
 .../freemarker/test/util/NoOutputDirective.java |  1 +
 142 files changed, 558 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/TemplateException.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/TemplateException.java b/src/main/java/org/apache/freemarker/core/TemplateException.java
index 543aa37..ddd8f62 100644
--- a/src/main/java/org/apache/freemarker/core/TemplateException.java
+++ b/src/main/java/org/apache/freemarker/core/TemplateException.java
@@ -606,18 +606,22 @@ public class TemplateException extends Exception {
             this.out = out;
         }
 
+        @Override
         public void print(Object obj) {
             out.print(obj);
         }
 
+        @Override
         public void println(Object obj) {
             out.println(obj);
         }
 
+        @Override
         public void println() {
             out.println();
         }
 
+        @Override
         public void printStandardStackTrace(Throwable exception) {
             if (exception instanceof TemplateException) {
                 ((TemplateException) exception).printStandardStackTrace(out);
@@ -636,18 +640,22 @@ public class TemplateException extends Exception {
             this.out = out;
         }
 
+        @Override
         public void print(Object obj) {
             out.print(obj);
         }
 
+        @Override
         public void println(Object obj) {
             out.println(obj);
         }
 
+        @Override
         public void println() {
             out.println();
         }
 
+        @Override
         public void printStandardStackTrace(Throwable exception) {
             if (exception instanceof TemplateException) {
                 ((TemplateException) exception).printStandardStackTrace(out);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java b/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
index 54a16b8..ef871c1 100644
--- a/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
+++ b/src/main/java/org/apache/freemarker/core/TemplateExceptionHandler.java
@@ -59,6 +59,7 @@ public interface TemplateExceptionHandler {
     * other {@link TemplateExceptionHandler}-s.
     */
     TemplateExceptionHandler IGNORE_HANDLER = new TemplateExceptionHandler() {
+        @Override
         public void handleTemplateException(TemplateException te, Environment env, Writer out) {
             // Do nothing
         }
@@ -69,6 +70,7 @@ public interface TemplateExceptionHandler {
      * systems.
      */
     TemplateExceptionHandler RETHROW_HANDLER = new TemplateExceptionHandler() {
+        @Override
         public void handleTemplateException(TemplateException te, Environment env, Writer out)
                 throws TemplateException {
             throw te;
@@ -80,6 +82,7 @@ public interface TemplateExceptionHandler {
      * outputs the stack trace information to the client and then re-throws the exception.
      */
     TemplateExceptionHandler DEBUG_HANDLER = new TemplateExceptionHandler() {
+        @Override
         public void handleTemplateException(TemplateException te, Environment env, Writer out)
                 throws TemplateException {
             if (!env.isInAttemptBlock()) {
@@ -99,6 +102,7 @@ public interface TemplateExceptionHandler {
      * in the browser, and then re-throws the exception.
      */
     TemplateExceptionHandler HTML_DEBUG_HANDLER = new TemplateExceptionHandler() {
+        @Override
         public void handleTemplateException(TemplateException te, Environment env, Writer out)
                 throws TemplateException {
             if (!env.isInAttemptBlock()) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/AddConcatExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/AddConcatExpression.java b/src/main/java/org/apache/freemarker/core/ast/AddConcatExpression.java
index cc126e0..9e79643 100644
--- a/src/main/java/org/apache/freemarker/core/ast/AddConcatExpression.java
+++ b/src/main/java/org/apache/freemarker/core/ast/AddConcatExpression.java
@@ -201,11 +201,13 @@ final class AddConcatExpression extends Expression {
             this.right = right;
         }
 
+        @Override
         public int size()
         throws TemplateModelException {
             return left.size() + right.size();
         }
 
+        @Override
         public TemplateModel get(int i)
         throws TemplateModelException {
             int ls = left.size();
@@ -223,12 +225,14 @@ final class AddConcatExpression extends Expression {
             this.right = right;
         }
         
+        @Override
         public TemplateModel get(String key)
         throws TemplateModelException {
             TemplateModel model = right.get(key);
             return (model != null) ? model : left.get(key);
         }
 
+        @Override
         public boolean isEmpty()
         throws TemplateModelException {
             return left.isEmpty() && right.isEmpty();
@@ -246,17 +250,20 @@ final class AddConcatExpression extends Expression {
             super(left, right);
         }
         
+        @Override
         public int size() throws TemplateModelException {
             initKeys();
             return size;
         }
 
+        @Override
         public TemplateCollectionModel keys()
         throws TemplateModelException {
             initKeys();
             return keys;
         }
 
+        @Override
         public TemplateCollectionModel values()
         throws TemplateModelException {
             initValues();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BlockAssignment.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BlockAssignment.java b/src/main/java/org/apache/freemarker/core/ast/BlockAssignment.java
index effff2e..20320c2 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BlockAssignment.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BlockAssignment.java
@@ -89,6 +89,7 @@ final class BlockAssignment extends TemplateElement {
             fnsModel = (Environment.Namespace ) nsModel; 
         }
         
+        @Override
         public Writer getWriter(Writer out, Map args) {
             return new StringWriter() {
                 @Override

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BodyInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BodyInstruction.java b/src/main/java/org/apache/freemarker/core/ast/BodyInstruction.java
index bcdac8b..548f9fd 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BodyInstruction.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BodyInstruction.java
@@ -141,10 +141,12 @@ final class BodyInstruction extends TemplateElement {
             }
         }
         
+        @Override
         public TemplateModel getLocalVariable(String name) throws TemplateModelException {
             return bodyVars == null ? null : bodyVars.get(name);
         }
         
+        @Override
         public Collection getLocalVariableNames() {
             List bodyParameterNames = invokingMacroContext.nestedContentParameterNames;
             return bodyParameterNames == null ? Collections.EMPTY_LIST : bodyParameterNames;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BoundedRangeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BoundedRangeModel.java b/src/main/java/org/apache/freemarker/core/ast/BoundedRangeModel.java
index 65a8821..9024b2b 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BoundedRangeModel.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BoundedRangeModel.java
@@ -42,6 +42,7 @@ final class BoundedRangeModel extends RangeModel {
         this.affectedByStringSlicingBug = inclusiveEnd;
     }
 
+    @Override
     public int size() {
         return size;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BuiltInsForDates.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForDates.java b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForDates.java
index 54f45b4..53a239b 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForDates.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForDates.java
@@ -88,6 +88,7 @@ class BuiltInsForDates {
                 this.env = env;
             }
 
+            @Override
             public Object exec(List args) throws TemplateModelException {
                 checkMethodArgCount(args, 1);
                 

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BuiltInsForLoopVariables.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForLoopVariables.java b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForLoopVariables.java
index 8c8bc97..3cb8684 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForLoopVariables.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForLoopVariables.java
@@ -140,6 +140,7 @@ class BuiltInsForLoopVariables {
                 this.iterCtx = iterCtx;
             }
     
+            @Override
             public Object exec(List args) throws TemplateModelException {
                 checkMethodArgCount(args, 1, Integer.MAX_VALUE);
                 return args.get(iterCtx.getIndex() % args.size());

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BuiltInsForNodes.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForNodes.java b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForNodes.java
index 5c66edd..d2ca3cf 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForNodes.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForNodes.java
@@ -127,6 +127,7 @@ class BuiltInsForNodes {
             this.env = env;
         }
         
+        @Override
         public Object exec(List names) throws TemplateModelException {
             if (names == null || names.isEmpty()) {
                 return this;

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BuiltInsForSequences.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForSequences.java b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForSequences.java
index 87a1555..f0b299b 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForSequences.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForSequences.java
@@ -61,6 +61,7 @@ class BuiltInsForSequences {
                 this.tsm = tsm;
             }
 
+            @Override
             public Object exec(List args) throws TemplateModelException {
                 checkMethodArgCount(args, 1, 2);
                 int chunkSize = getNumberMethodArg(args, 0).intValue();
@@ -94,6 +95,7 @@ class BuiltInsForSequences {
                 numberOfChunks = (wrappedTsm.size() + chunkSize - 1) / chunkSize; 
             }
 
+            @Override
             public TemplateModel get(final int chunkIndex)
                     throws TemplateModelException {
                 if (chunkIndex >= numberOfChunks) {
@@ -104,6 +106,7 @@ class BuiltInsForSequences {
                     
                     private final int baseIndex = chunkIndex * chunkSize;
 
+                    @Override
                     public TemplateModel get(int relIndex)
                             throws TemplateModelException {
                         int absIndex = baseIndex + relIndex;
@@ -116,6 +119,7 @@ class BuiltInsForSequences {
                         }
                     }
 
+                    @Override
                     public int size() throws TemplateModelException {
                         return fillerItem != null || chunkIndex + 1 < numberOfChunks
                                 ? chunkSize
@@ -125,6 +129,7 @@ class BuiltInsForSequences {
                 };
             }
 
+            @Override
             public int size() throws TemplateModelException {
                 return numberOfChunks;
             }
@@ -186,6 +191,7 @@ class BuiltInsForSequences {
                 this.coll = coll;
             }
 
+            @Override
             public Object exec(List args)
                     throws TemplateModelException {
                 checkMethodArgCount(args, 1, 3);
@@ -266,10 +272,12 @@ class BuiltInsForSequences {
                 this.seq = seq;
             }
 
+            @Override
             public TemplateModel get(int index) throws TemplateModelException {
                 return seq.get(seq.size() - 1 - index);
             }
 
+            @Override
             public int size() throws TemplateModelException {
                 return seq.size();
             }
@@ -295,6 +303,7 @@ class BuiltInsForSequences {
                 m_env = env;
             }
 
+            @Override
             public Object exec(List args)
                     throws TemplateModelException {
                 checkMethodArgCount(args, 1);
@@ -320,6 +329,7 @@ class BuiltInsForSequences {
                 m_env = env;
             }
 
+            @Override
             public Object exec(List args)
                     throws TemplateModelException {
                 checkMethodArgCount(args, 1);
@@ -383,6 +393,7 @@ class BuiltInsForSequences {
                 m_env = env;
             }
 
+            @Override
             public final Object exec(List args)
                     throws TemplateModelException {
                 int argCnt = args.size();
@@ -520,6 +531,7 @@ class BuiltInsForSequences {
                 this.seq = seq;
             }
             
+            @Override
             public Object exec(List args)
                     throws TemplateModelException {
                 // Should be:
@@ -568,6 +580,7 @@ class BuiltInsForSequences {
         
         private static class BooleanKVPComparator implements Comparator, Serializable {
 
+            @Override
             public int compare(Object arg0, Object arg1) {
                 // JDK 1.2 doesn't have Boolean.compareTo
                 boolean b0 = ((Boolean) ((KVP) arg0).key).booleanValue();
@@ -581,6 +594,7 @@ class BuiltInsForSequences {
         }
         private static class DateKVPComparator implements Comparator, Serializable {
 
+            @Override
             public int compare(Object arg0, Object arg1) {
                 return ((Date) ((KVP) arg0).key).compareTo(
                         (Date) ((KVP) arg1).key);
@@ -605,6 +619,7 @@ class BuiltInsForSequences {
                 this.collator = collator;
             }
 
+            @Override
             public int compare(Object arg0, Object arg1) {
                 return collator.compare(
                         ((KVP) arg0).key, ((KVP) arg1).key);
@@ -617,6 +632,7 @@ class BuiltInsForSequences {
                 this.ae = ae;
             }
 
+            @Override
             public int compare(Object arg0, Object arg1) {
                 try {
                     return ae.compareNumbers(

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BuiltInsForStringsRegexp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForStringsRegexp.java b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForStringsRegexp.java
index d85950a..b436db9 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltInsForStringsRegexp.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltInsForStringsRegexp.java
@@ -70,6 +70,7 @@ class BuiltInsForStringsRegexp {
                 this.matchString = matchString;
             }
             
+            @Override
             public Object exec(List args) throws TemplateModelException {
                 int argCnt = args.size();
                 checkMethodArgCount(argCnt, 1, 2);
@@ -100,6 +101,7 @@ class BuiltInsForStringsRegexp {
                 this.s = s;
             }
 
+            @Override
             public Object exec(List args) throws TemplateModelException {
                 int argCnt = args.size();
                 checkMethodArgCount(argCnt, 2, 3);
@@ -148,6 +150,7 @@ class BuiltInsForStringsRegexp {
                 }
             }
             
+            @Override
             public String getAsString() {
                 return matchedInputPart;
             }
@@ -167,6 +170,7 @@ class BuiltInsForStringsRegexp {
             this.input = input;
         }
         
+        @Override
         public TemplateModel get(int i) throws TemplateModelException {
             ArrayList matchingInputParts = this.matchingInputParts;
             if (matchingInputParts == null) {
@@ -175,6 +179,7 @@ class BuiltInsForStringsRegexp {
             return (TemplateModel) matchingInputParts.get(i);
         }
         
+        @Override
         public boolean getAsBoolean() {
             Boolean result = entireInputMatched;
             return result != null ? result.booleanValue() : isEntrieInputMatchesAndStoreResults();
@@ -192,6 +197,7 @@ class BuiltInsForStringsRegexp {
                
                 entireInputMatchGroups = new TemplateSequenceModel() {
                     
+                    @Override
                     public TemplateModel get(int i) throws TemplateModelException {
                         try {
                             return new SimpleScalar(firedEntireInputMatcher.group(i));
@@ -200,6 +206,7 @@ class BuiltInsForStringsRegexp {
                         }
                     }
                     
+                    @Override
                     public int size() throws TemplateModelException {
                         try {
                             return firedEntireInputMatcher.groupCount() + 1;
@@ -234,6 +241,7 @@ class BuiltInsForStringsRegexp {
             return matches;
         }
         
+        @Override
         public TemplateModelIterator iterator() {
             final ArrayList matchingInputParts = this.matchingInputParts;
             if (matchingInputParts == null) {
@@ -243,6 +251,7 @@ class BuiltInsForStringsRegexp {
                     private int nextIdx = 0;
                     boolean hasFindInfo = matcher.find();
                     
+                    @Override
                     public boolean hasNext() {
                         final ArrayList matchingInputParts = RegexMatchModel.this.matchingInputParts;
                         if (matchingInputParts == null) {
@@ -252,6 +261,7 @@ class BuiltInsForStringsRegexp {
                         }
                     }
                     
+                    @Override
                     public TemplateModel next() throws TemplateModelException {
                         final ArrayList matchingInputParts = RegexMatchModel.this.matchingInputParts;
                         if (matchingInputParts == null) {
@@ -275,10 +285,12 @@ class BuiltInsForStringsRegexp {
                     
                     private int nextIdx = 0;
                     
+                    @Override
                     public boolean hasNext() {
                         return nextIdx < matchingInputParts.size();
                     }
                     
+                    @Override
                     public TemplateModel next() throws TemplateModelException {
                         try {
                             return (TemplateModel) matchingInputParts.get(nextIdx++);
@@ -290,6 +302,7 @@ class BuiltInsForStringsRegexp {
             }
         }
         
+        @Override
         public int size() throws TemplateModelException {
             ArrayList matchingInputParts = this.matchingInputParts;
             if (matchingInputParts == null) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java b/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
index 8925001..2504cfb 100644
--- a/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
+++ b/src/main/java/org/apache/freemarker/core/ast/BuiltinVariable.java
@@ -280,10 +280,12 @@ final class BuiltinVariable extends Expression {
             this.env = env;
         }
         
+        @Override
         public TemplateModel get(String key) throws TemplateModelException {
             return env.getVariable(key);
         }
         
+        @Override
         public boolean isEmpty() {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/CollectionAndSequence.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/CollectionAndSequence.java b/src/main/java/org/apache/freemarker/core/ast/CollectionAndSequence.java
index 828303b..b593f56 100644
--- a/src/main/java/org/apache/freemarker/core/ast/CollectionAndSequence.java
+++ b/src/main/java/org/apache/freemarker/core/ast/CollectionAndSequence.java
@@ -46,6 +46,7 @@ implements TemplateCollectionModel, TemplateSequenceModel, Serializable {
         this.sequence = sequence;
     }
 
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         if (collection != null) {
             return collection.iterator();
@@ -54,6 +55,7 @@ implements TemplateCollectionModel, TemplateSequenceModel, Serializable {
         }
     }
 
+    @Override
     public TemplateModel get(int i) throws TemplateModelException {
         if (sequence != null) {
             return sequence.get(i);
@@ -63,6 +65,7 @@ implements TemplateCollectionModel, TemplateSequenceModel, Serializable {
         }
     }
 
+    @Override
     public int size() throws TemplateModelException {
         if (sequence != null) {
             return sequence.size();
@@ -93,10 +96,12 @@ implements TemplateCollectionModel, TemplateSequenceModel, Serializable {
             this.size = sequence.size();
             
         }
+        @Override
         public TemplateModel next() throws TemplateModelException {
             return sequence.get(index++);
         }
 
+        @Override
         public boolean hasNext() {
             return index < size;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/CommonTemplateMarkupOutputModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/CommonTemplateMarkupOutputModel.java b/src/main/java/org/apache/freemarker/core/ast/CommonTemplateMarkupOutputModel.java
index d9ecbe3..fd208e3 100644
--- a/src/main/java/org/apache/freemarker/core/ast/CommonTemplateMarkupOutputModel.java
+++ b/src/main/java/org/apache/freemarker/core/ast/CommonTemplateMarkupOutputModel.java
@@ -43,6 +43,7 @@ public abstract class CommonTemplateMarkupOutputModel<MO extends CommonTemplateM
         this.markupContet = markupContent;
     }
 
+    @Override
     public abstract CommonMarkupOutputFormat<MO> getOutputFormat();
 
     /** Maybe {@code null}, but then {@link #getMarkupContent()} isn't {@code null}. */

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/DefaultToExpression.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/DefaultToExpression.java b/src/main/java/org/apache/freemarker/core/ast/DefaultToExpression.java
index 4e0f3af..f6aef0e 100755
--- a/src/main/java/org/apache/freemarker/core/ast/DefaultToExpression.java
+++ b/src/main/java/org/apache/freemarker/core/ast/DefaultToExpression.java
@@ -35,25 +35,32 @@ class DefaultToExpression extends Expression {
     
 	static private class EmptyStringAndSequence 
 	  implements TemplateScalarModel, TemplateSequenceModel, TemplateHashModelEx {
-		public String getAsString() {
+		@Override
+        public String getAsString() {
 			return "";
 		}
-		public TemplateModel get(int i) {
+		@Override
+        public TemplateModel get(int i) {
 			return null;
 		}
-		public TemplateModel get(String s) {
+		@Override
+        public TemplateModel get(String s) {
 			return null;
 		}
-		public int size() {
+		@Override
+        public int size() {
 			return 0;
 		}
-		public boolean isEmpty() {
+		@Override
+        public boolean isEmpty() {
 			return true;
 		}
-		public TemplateCollectionModel keys() {
+		@Override
+        public TemplateCollectionModel keys() {
 			return EMPTY_COLLECTION;
 		}
-		public TemplateCollectionModel values() {
+		@Override
+        public TemplateCollectionModel values() {
 			return EMPTY_COLLECTION;
 		}
 		

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/ExistenceBuiltins.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/ExistenceBuiltins.java b/src/main/java/org/apache/freemarker/core/ast/ExistenceBuiltins.java
index dc1d167..2fc343b 100644
--- a/src/main/java/org/apache/freemarker/core/ast/ExistenceBuiltins.java
+++ b/src/main/java/org/apache/freemarker/core/ast/ExistenceBuiltins.java
@@ -71,6 +71,7 @@ class ExistenceBuiltins {
                 this.constant = constant;
             }
 
+            @Override
             public Object exec(List args) {
                 return constant;
             }
@@ -82,6 +83,7 @@ class ExistenceBuiltins {
          */
         private static final TemplateMethodModelEx FIRST_NON_NULL_METHOD =
             new TemplateMethodModelEx() {
+                @Override
                 public Object exec(List args) throws TemplateModelException {
                     int argCnt = args.size();
                     if (argCnt == 0) throw MessageUtil.newArgCntError("?default", argCnt, 1, Integer.MAX_VALUE);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/FreeMarkerTree.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/FreeMarkerTree.java b/src/main/java/org/apache/freemarker/core/ast/FreeMarkerTree.java
index 6cd0915..3c4b412 100644
--- a/src/main/java/org/apache/freemarker/core/ast/FreeMarkerTree.java
+++ b/src/main/java/org/apache/freemarker/core/ast/FreeMarkerTree.java
@@ -76,38 +76,47 @@ public class FreeMarkerTree extends JTree {
             this.element = element;
         }
 
+        @Override
         public Enumeration children() {
             final Enumeration e = element.children();
             return new Enumeration() {
+                @Override
                 public boolean hasMoreElements() {
                     return e.hasMoreElements();
                 }
+                @Override
                 public Object nextElement() {
                     return getNode((TemplateElement) e.nextElement());
                 }
             };
         }
 
+        @Override
         public boolean getAllowsChildren() {
             return element.getAllowsChildren();
         }
 
+        @Override
         public TreeNode getChildAt(int childIndex) {
             return getNode(element.getChildAt(childIndex));
         }
 
+        @Override
         public int getChildCount() {
             return element.getChildCount();
         }
 
+        @Override
         public int getIndex(TreeNode node) {
             return element.getIndex(((TemplateElementTreeNode) node).element);
         }
 
+        @Override
         public TreeNode getParent() {
             return getNode(element.getParentElement());
         }
 
+        @Override
         public boolean isLeaf() {
             return element.isLeaf();
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/Interpret.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/Interpret.java b/src/main/java/org/apache/freemarker/core/ast/Interpret.java
index c017aa8..140ccea 100644
--- a/src/main/java/org/apache/freemarker/core/ast/Interpret.java
+++ b/src/main/java/org/apache/freemarker/core/ast/Interpret.java
@@ -117,6 +117,7 @@ class Interpret extends OutputFormatBoundBuiltIn {
             this.template = template;
         }
         
+        @Override
         public Writer getWriter(final Writer out, Map args) throws TemplateModelException, IOException {
             try {
                 Environment env = Environment.getCurrentEnvironment();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/ListableRightUnboundedRangeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/ListableRightUnboundedRangeModel.java b/src/main/java/org/apache/freemarker/core/ast/ListableRightUnboundedRangeModel.java
index accf42b..d5a28e8 100644
--- a/src/main/java/org/apache/freemarker/core/ast/ListableRightUnboundedRangeModel.java
+++ b/src/main/java/org/apache/freemarker/core/ast/ListableRightUnboundedRangeModel.java
@@ -38,10 +38,12 @@ final class ListableRightUnboundedRangeModel extends RightUnboundedRangeModel im
         super(begin);
     }
 
+    @Override
     public int size() throws TemplateModelException {
         return Integer.MAX_VALUE;
     }
 
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         return new TemplateModelIterator() {
             boolean needInc;
@@ -50,6 +52,7 @@ final class ListableRightUnboundedRangeModel extends RightUnboundedRangeModel im
             long nextLong;
             BigInteger nextBigInteger;
 
+            @Override
             public TemplateModel next() throws TemplateModelException {
                 if (needInc) {
                     switch (nextType) {
@@ -82,6 +85,7 @@ final class ListableRightUnboundedRangeModel extends RightUnboundedRangeModel im
                         : new SimpleNumber(nextBigInteger)); 
             }
 
+            @Override
             public boolean hasNext() throws TemplateModelException {
                 return true;
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/MarkReleaserTemplateSpecifiedEncodingHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/MarkReleaserTemplateSpecifiedEncodingHandler.java b/src/main/java/org/apache/freemarker/core/ast/MarkReleaserTemplateSpecifiedEncodingHandler.java
index a12fb61..66d1a78 100644
--- a/src/main/java/org/apache/freemarker/core/ast/MarkReleaserTemplateSpecifiedEncodingHandler.java
+++ b/src/main/java/org/apache/freemarker/core/ast/MarkReleaserTemplateSpecifiedEncodingHandler.java
@@ -40,6 +40,7 @@ public class MarkReleaserTemplateSpecifiedEncodingHandler implements TemplateSpe
         this.markedInputStream = markedInputStream;
     }
 
+    @Override
     public void handle(String templateSpecificEncoding, String constructorSpecifiedEncoding)
             throws WrongEncodingException {
         TemplateSpecifiedEncodingHandler.DEFAULT.handle(templateSpecificEncoding, constructorSpecifiedEncoding);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/MiscUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/MiscUtil.java b/src/main/java/org/apache/freemarker/core/ast/MiscUtil.java
index 63911ef..87b21cf 100644
--- a/src/main/java/org/apache/freemarker/core/ast/MiscUtil.java
+++ b/src/main/java/org/apache/freemarker/core/ast/MiscUtil.java
@@ -43,6 +43,7 @@ class MiscUtil {
         ArrayList res = new ArrayList(map.entrySet());
         Collections.sort(res, 
                 new Comparator() {  // for sorting to source code order
+                    @Override
                     public int compare(Object o1, Object o2) {
                         Map.Entry ent1 = (Map.Entry) o1;
                         Expression exp1 = (Expression) ent1.getValue();

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/NonListableRightUnboundedRangeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/NonListableRightUnboundedRangeModel.java b/src/main/java/org/apache/freemarker/core/ast/NonListableRightUnboundedRangeModel.java
index d9204b3..14c8d9e 100644
--- a/src/main/java/org/apache/freemarker/core/ast/NonListableRightUnboundedRangeModel.java
+++ b/src/main/java/org/apache/freemarker/core/ast/NonListableRightUnboundedRangeModel.java
@@ -32,6 +32,7 @@ final class NonListableRightUnboundedRangeModel extends RightUnboundedRangeModel
         super(begin);
     }
 
+    @Override
     public int size() throws TemplateModelException {
         return 0;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/NumberLiteral.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/NumberLiteral.java b/src/main/java/org/apache/freemarker/core/ast/NumberLiteral.java
index 5372b30..0960a76 100644
--- a/src/main/java/org/apache/freemarker/core/ast/NumberLiteral.java
+++ b/src/main/java/org/apache/freemarker/core/ast/NumberLiteral.java
@@ -46,6 +46,7 @@ final class NumberLiteral extends Expression implements TemplateNumberModel {
         return env.formatNumberToPlainText(this, this, false);
     }
 
+    @Override
     public Number getAsNumber() {
         return value;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/RangeModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/RangeModel.java b/src/main/java/org/apache/freemarker/core/ast/RangeModel.java
index 02fc844..a038cf0 100644
--- a/src/main/java/org/apache/freemarker/core/ast/RangeModel.java
+++ b/src/main/java/org/apache/freemarker/core/ast/RangeModel.java
@@ -36,6 +36,7 @@ abstract class RangeModel implements TemplateSequenceModel, java.io.Serializable
         return begin;
     }
     
+    @Override
     final public TemplateModel get(int index) throws TemplateModelException {
         if (index < 0 || index >= size()) {
             throw new _TemplateModelException("Range item index ", Integer.valueOf(index), " is out of bounds.");

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/ast/StringArraySequence.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/ast/StringArraySequence.java b/src/main/java/org/apache/freemarker/core/ast/StringArraySequence.java
index 348e75b..895b31a 100644
--- a/src/main/java/org/apache/freemarker/core/ast/StringArraySequence.java
+++ b/src/main/java/org/apache/freemarker/core/ast/StringArraySequence.java
@@ -40,6 +40,7 @@ public class StringArraySequence implements TemplateSequenceModel {
         this.stringArray = stringArray;
     }
 
+    @Override
     public TemplateModel get(int index) {
         if (array == null) {
             array = new TemplateScalarModel[stringArray.length];
@@ -52,6 +53,7 @@ public class StringArraySequence implements TemplateSequenceModel {
         return result;
     }
 
+    @Override
     public int size() {
         return stringArray.length;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/debug/Breakpoint.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/debug/Breakpoint.java b/src/main/java/org/apache/freemarker/core/debug/Breakpoint.java
index 6cd0bf5..c66f9c7 100644
--- a/src/main/java/org/apache/freemarker/core/debug/Breakpoint.java
+++ b/src/main/java/org/apache/freemarker/core/debug/Breakpoint.java
@@ -67,6 +67,7 @@ public class Breakpoint implements Serializable, Comparable {
         return false;
     }
     
+    @Override
     public int compareTo(Object o) {
         Breakpoint b = (Breakpoint) o;
         int r = templateName.compareTo(b.templateName);

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java b/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
index fb7be4c..0271ff0 100644
--- a/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
+++ b/src/main/java/org/apache/freemarker/core/debug/DebuggerClient.java
@@ -94,11 +94,13 @@ public class DebuggerClient {
             this.remoteDebugger = remoteDebugger;
         }
 
+        @Override
         public void addBreakpoint(Breakpoint breakpoint) throws RemoteException {
             remoteDebugger.addBreakpoint(breakpoint);
         }
 
-        public Object addDebuggerListener(DebuggerListener listener) 
+        @Override
+        public Object addDebuggerListener(DebuggerListener listener)
         throws RemoteException {
             if (listener instanceof RemoteObject) {
                 return remoteDebugger.addDebuggerListener(listener);
@@ -109,30 +111,37 @@ public class DebuggerClient {
             }
         }
 
+        @Override
         public List getBreakpoints() throws RemoteException {
             return remoteDebugger.getBreakpoints();
         }
 
+        @Override
         public List getBreakpoints(String templateName) throws RemoteException {
             return remoteDebugger.getBreakpoints(templateName);
         }
 
+        @Override
         public Collection getSuspendedEnvironments() throws RemoteException {
             return remoteDebugger.getSuspendedEnvironments();
         }
 
+        @Override
         public void removeBreakpoint(Breakpoint breakpoint) throws RemoteException {
             remoteDebugger.removeBreakpoint(breakpoint);
         }
 
+        @Override
         public void removeBreakpoints(String templateName) throws RemoteException {
             remoteDebugger.removeBreakpoints(templateName);
         }
 
+        @Override
         public void removeBreakpoints() throws RemoteException {
             remoteDebugger.removeBreakpoints();
         }
 
+        @Override
         public void removeDebuggerListener(Object id) throws RemoteException {
             remoteDebugger.removeDebuggerListener(id);
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebugModelImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebugModelImpl.java b/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebugModelImpl.java
index 61333de..58a37c7 100644
--- a/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebugModelImpl.java
+++ b/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebugModelImpl.java
@@ -58,26 +58,32 @@ class RmiDebugModelImpl extends UnicastRemoteObject implements DebugModel {
     private static DebugModel getDebugModel(TemplateModel tm) throws RemoteException {
         return (DebugModel) RmiDebuggedEnvironmentImpl.getCachedWrapperFor(tm);
     }
+    @Override
     public String getAsString() throws TemplateModelException {
         return ((TemplateScalarModel) model).getAsString();
     }
 
+    @Override
     public Number getAsNumber() throws TemplateModelException {
         return ((TemplateNumberModel) model).getAsNumber();
     }
 
+    @Override
     public Date getAsDate() throws TemplateModelException {
         return ((TemplateDateModel) model).getAsDate();
     }
 
+    @Override
     public int getDateType() {
         return ((TemplateDateModel) model).getDateType();
     }
 
+    @Override
     public boolean getAsBoolean() throws TemplateModelException {
         return ((TemplateBooleanModel) model).getAsBoolean();
     }
 
+    @Override
     public int size() throws TemplateModelException {
         if (model instanceof TemplateSequenceModel) {
             return ((TemplateSequenceModel) model).size();
@@ -85,10 +91,12 @@ class RmiDebugModelImpl extends UnicastRemoteObject implements DebugModel {
         return ((TemplateHashModelEx) model).size();
     }
 
+    @Override
     public DebugModel get(int index) throws TemplateModelException, RemoteException {
         return getDebugModel(((TemplateSequenceModel) model).get(index));
     }
     
+    @Override
     public DebugModel[] get(int fromIndex, int toIndex) throws TemplateModelException, RemoteException {
         DebugModel[] dm = new DebugModel[toIndex - fromIndex];
         TemplateSequenceModel s = (TemplateSequenceModel) model;
@@ -98,6 +106,7 @@ class RmiDebugModelImpl extends UnicastRemoteObject implements DebugModel {
         return dm;
     }
 
+    @Override
     public DebugModel[] getCollection() throws TemplateModelException, RemoteException {
         List list = new ArrayList();
         TemplateModelIterator i = ((TemplateCollectionModel) model).iterator();
@@ -107,10 +116,12 @@ class RmiDebugModelImpl extends UnicastRemoteObject implements DebugModel {
         return (DebugModel[]) list.toArray(new DebugModel[list.size()]);
     }
     
+    @Override
     public DebugModel get(String key) throws TemplateModelException, RemoteException {
         return getDebugModel(((TemplateHashModel) model).get(key));
     }
     
+    @Override
     public DebugModel[] get(String[] keys) throws TemplateModelException, RemoteException {
         DebugModel[] dm = new DebugModel[keys.length];
         TemplateHashModel h = (TemplateHashModel) model;
@@ -120,6 +131,7 @@ class RmiDebugModelImpl extends UnicastRemoteObject implements DebugModel {
         return dm;
     }
 
+    @Override
     public String[] keys() throws TemplateModelException {
         TemplateHashModelEx h = (TemplateHashModelEx) model;
         List list = new ArrayList();
@@ -130,6 +142,7 @@ class RmiDebugModelImpl extends UnicastRemoteObject implements DebugModel {
         return (String[]) list.toArray(new String[list.size()]);
     }
 
+    @Override
     public int getModelTypes() {
         return type;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebuggerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebuggerImpl.java b/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebuggerImpl.java
index 1d3aaf0..4a05421 100644
--- a/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebuggerImpl.java
+++ b/src/main/java/org/apache/freemarker/core/debug/impl/RmiDebuggerImpl.java
@@ -43,38 +43,47 @@ implements
         this.service = service;
     }
 
+    @Override
     public void addBreakpoint(Breakpoint breakpoint) {
         service.addBreakpoint(breakpoint);
     }
 
+    @Override
     public Object addDebuggerListener(DebuggerListener listener) {
         return service.addDebuggerListener(listener);
     }
 
+    @Override
     public List getBreakpoints() {
         return service.getBreakpointsSpi();
     }
 
+    @Override
     public List getBreakpoints(String templateName) {
         return service.getBreakpointsSpi(templateName);
     }
 
+    @Override
     public Collection getSuspendedEnvironments() {
         return service.getSuspendedEnvironments();
     }
 
+    @Override
     public void removeBreakpoint(Breakpoint breakpoint) {
         service.removeBreakpoint(breakpoint);
     }
 
+    @Override
     public void removeDebuggerListener(Object id) {
         service.removeDebuggerListener(id);
     }
 
+    @Override
     public void removeBreakpoints() {
         service.removeBreakpoints();
     }
 
+    @Override
     public void removeBreakpoints(String templateName) {
         service.removeBreakpoints(templateName);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/Constants.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/Constants.java b/src/main/java/org/apache/freemarker/core/model/Constants.java
index 76f2f45..1438c0d 100644
--- a/src/main/java/org/apache/freemarker/core/model/Constants.java
+++ b/src/main/java/org/apache/freemarker/core/model/Constants.java
@@ -59,10 +59,12 @@ public class Constants {
     
     private static class EmptyIteratorModel implements TemplateModelIterator, Serializable {
 
+        @Override
         public TemplateModel next() throws TemplateModelException {
             throw new TemplateModelException("The collection has no more elements.");
         }
 
+        @Override
         public boolean hasNext() throws TemplateModelException {
             return false;
         }
@@ -73,6 +75,7 @@ public class Constants {
     
     private static class EmptyCollectionModel implements TemplateCollectionModel, Serializable {
 
+        @Override
         public TemplateModelIterator iterator() throws TemplateModelException {
             return EMPTY_ITERATOR;
         }
@@ -83,10 +86,12 @@ public class Constants {
     
     private static class EmptySequenceModel implements TemplateSequenceModel, Serializable {
         
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return null;
         }
     
+        @Override
         public int size() throws TemplateModelException {
             return 0;
         }
@@ -97,22 +102,27 @@ public class Constants {
     
     private static class EmptyHashModel implements TemplateHashModelEx, Serializable {
         
+        @Override
         public int size() throws TemplateModelException {
             return 0;
         }
 
+        @Override
         public TemplateCollectionModel keys() throws TemplateModelException {
             return EMPTY_COLLECTION;
         }
 
+        @Override
         public TemplateCollectionModel values() throws TemplateModelException {
             return EMPTY_COLLECTION;
         }
 
+        @Override
         public TemplateModel get(String key) throws TemplateModelException {
             return null;
         }
 
+        @Override
         public boolean isEmpty() throws TemplateModelException {
             return true;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/FalseTemplateBooleanModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/FalseTemplateBooleanModel.java b/src/main/java/org/apache/freemarker/core/model/FalseTemplateBooleanModel.java
index acbf7dd..d2cc875 100644
--- a/src/main/java/org/apache/freemarker/core/model/FalseTemplateBooleanModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/FalseTemplateBooleanModel.java
@@ -24,6 +24,7 @@ package org.apache.freemarker.core.model;
  */
 final class FalseTemplateBooleanModel implements SerializableTemplateBooleanModel {
     
+    @Override
     public boolean getAsBoolean() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/TemplateMethodModelEx.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/TemplateMethodModelEx.java b/src/main/java/org/apache/freemarker/core/model/TemplateMethodModelEx.java
index afc8e5a..acb5632 100644
--- a/src/main/java/org/apache/freemarker/core/model/TemplateMethodModelEx.java
+++ b/src/main/java/org/apache/freemarker/core/model/TemplateMethodModelEx.java
@@ -48,6 +48,7 @@ public interface TemplateMethodModelEx extends TemplateMethodModel {
      *     wrapped using the {@link Environment#getObjectWrapper() environment's 
      *     object wrapper}.
      */
+    @Override
     public Object exec(List arguments) throws TemplateModelException;
     
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/TrueTemplateBooleanModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/TrueTemplateBooleanModel.java b/src/main/java/org/apache/freemarker/core/model/TrueTemplateBooleanModel.java
index 71fa341..f180b2c 100644
--- a/src/main/java/org/apache/freemarker/core/model/TrueTemplateBooleanModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/TrueTemplateBooleanModel.java
@@ -24,6 +24,7 @@ package org.apache.freemarker.core.model;
  */
 final class TrueTemplateBooleanModel implements SerializableTemplateBooleanModel {
 
+    @Override
     public boolean getAsBoolean() {
         return true;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultArrayAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultArrayAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultArrayAdapter.java
index 1bcef2f..a7e39eb 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultArrayAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultArrayAdapter.java
@@ -105,6 +105,7 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
         super(wrapper);
     }
 
+    @Override
     public final Object getAdaptedObject(Class hint) {
         return getWrappedObject();
     }
@@ -118,14 +119,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(array[index]) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -141,14 +145,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Byte.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -164,14 +171,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Short.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -187,14 +197,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Integer.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -210,14 +223,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Long.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -233,14 +249,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Float.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -256,14 +275,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Double.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -279,14 +301,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Character.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -302,14 +327,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             this.array = array;
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < array.length ? wrap(Boolean.valueOf(array[index])) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return array.length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }
@@ -330,14 +358,17 @@ public abstract class DefaultArrayAdapter extends WrappingTemplateModel implemen
             length = Array.getLength(array);
         }
 
+        @Override
         public TemplateModel get(int index) throws TemplateModelException {
             return index >= 0 && index < length ? wrap(Array.get(array, index)) : null;
         }
 
+        @Override
         public int size() throws TemplateModelException {
             return length;
         }
 
+        @Override
         public Object getWrappedObject() {
             return array;
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultIterableAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultIterableAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultIterableAdapter.java
index a5899c8..56fe283 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultIterableAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultIterableAdapter.java
@@ -76,18 +76,22 @@ public class DefaultIterableAdapter extends WrappingTemplateModel implements Tem
         this.iterable = iterable;
     }
 
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         return new DefaultUnassignableIteratorAdapter(iterable.iterator(), getObjectWrapper());
     }
 
+    @Override
     public Object getWrappedObject() {
         return iterable;
     }
 
+    @Override
     public Object getAdaptedObject(Class hint) {
         return getWrappedObject();
     }
 
+    @Override
     public TemplateModel getAPI() throws TemplateModelException {
         return ((ObjectWrapperWithAPISupport) getObjectWrapper()).wrapAsAPI(iterable);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultIteratorAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultIteratorAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultIteratorAdapter.java
index 600e8f7..ccbc1ce 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultIteratorAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultIteratorAdapter.java
@@ -72,14 +72,17 @@ public class DefaultIteratorAdapter extends WrappingTemplateModel implements Tem
         this.iterator = iterator;
     }
 
+    @Override
     public Object getWrappedObject() {
         return iterator;
     }
 
+    @Override
     public Object getAdaptedObject(Class hint) {
         return getWrappedObject();
     }
 
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         return new SimpleTemplateModelIterator();
     }
@@ -91,6 +94,7 @@ public class DefaultIteratorAdapter extends WrappingTemplateModel implements Tem
 
         private boolean iteratorOwnedByMe;
 
+        @Override
         public TemplateModel next() throws TemplateModelException {
             if (!iteratorOwnedByMe) {
                 checkNotOwner();
@@ -106,6 +110,7 @@ public class DefaultIteratorAdapter extends WrappingTemplateModel implements Tem
             return value instanceof TemplateModel ? (TemplateModel) value : wrap(value);
         }
 
+        @Override
         public boolean hasNext() throws TemplateModelException {
             // Calling hasNext may looks safe, but I have met sync. problems.
             if (!iteratorOwnedByMe) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultListAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultListAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultListAdapter.java
index 16f21f8..1ebd3e1 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultListAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultListAdapter.java
@@ -81,18 +81,22 @@ public class DefaultListAdapter extends WrappingTemplateModel implements Templat
         this.list = list;
     }
 
+    @Override
     public TemplateModel get(int index) throws TemplateModelException {
         return index >= 0 && index < list.size() ? wrap(list.get(index)) : null;
     }
 
+    @Override
     public int size() throws TemplateModelException {
         return list.size();
     }
 
+    @Override
     public Object getAdaptedObject(Class hint) {
         return getWrappedObject();
     }
 
+    @Override
     public Object getWrappedObject() {
         return list;
     }
@@ -104,12 +108,14 @@ public class DefaultListAdapter extends WrappingTemplateModel implements Templat
             super(list, wrapper);
         }
 
+        @Override
         public TemplateModelIterator iterator() throws TemplateModelException {
             return new DefaultUnassignableIteratorAdapter(list.iterator(), getObjectWrapper());
         }
 
     }
 
+    @Override
     public TemplateModel getAPI() throws TemplateModelException {
         return ((ObjectWrapperWithAPISupport) getObjectWrapper()).wrapAsAPI(list);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultMapAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultMapAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultMapAdapter.java
index 522c7d0..d63cafe 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultMapAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultMapAdapter.java
@@ -76,6 +76,7 @@ public class DefaultMapAdapter extends WrappingTemplateModel
         this.map = map;
     }
 
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         Object val;
         try {
@@ -127,34 +128,42 @@ public class DefaultMapAdapter extends WrappingTemplateModel
         return wrap(val);
     }
 
+    @Override
     public boolean isEmpty() {
         return map.isEmpty();
     }
 
+    @Override
     public int size() {
         return map.size();
     }
 
+    @Override
     public TemplateCollectionModel keys() {
         return new SimpleCollection(map.keySet(), getObjectWrapper());
     }
 
+    @Override
     public TemplateCollectionModel values() {
         return new SimpleCollection(map.values(), getObjectWrapper());
     }
 
+    @Override
     public KeyValuePairIterator keyValuePairIterator() {
         return new MapKeyValuePairIterator(map, getObjectWrapper());
     }
 
+    @Override
     public Object getAdaptedObject(Class hint) {
         return map;
     }
 
+    @Override
     public Object getWrappedObject() {
         return map;
     }
 
+    @Override
     public TemplateModel getAPI() throws TemplateModelException {
         return ((ObjectWrapperWithAPISupport) getObjectWrapper()).wrapAsAPI(map);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultNonListCollectionAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultNonListCollectionAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultNonListCollectionAdapter.java
index f5f6cec..92d5970 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultNonListCollectionAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultNonListCollectionAdapter.java
@@ -82,26 +82,32 @@ public class DefaultNonListCollectionAdapter extends WrappingTemplateModel imple
         this.collection = collection;
     }
 
+    @Override
     public TemplateModelIterator iterator() throws TemplateModelException {
         return new DefaultUnassignableIteratorAdapter(collection.iterator(), getObjectWrapper());
     }
 
+    @Override
     public int size() {
         return collection.size();
     }
 
+    @Override
     public boolean isEmpty() {
         return collection.isEmpty();
     }
 
+    @Override
     public Object getWrappedObject() {
         return collection;
     }
 
+    @Override
     public Object getAdaptedObject(Class hint) {
         return getWrappedObject();
     }
 
+    @Override
     public boolean contains(TemplateModel item) throws TemplateModelException {
         Object itemPojo = ((ObjectWrapperAndUnwrapper) getObjectWrapper()).unwrap(item);
         try {
@@ -114,6 +120,7 @@ public class DefaultNonListCollectionAdapter extends WrappingTemplateModel imple
         }
     }
 
+    @Override
     public TemplateModel getAPI() throws TemplateModelException {
         return ((ObjectWrapperWithAPISupport) getObjectWrapper()).wrapAsAPI(collection);
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperBuilder.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperBuilder.java
index e9f3fab..40768f8 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperBuilder.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultObjectWrapperBuilder.java
@@ -74,6 +74,7 @@ public class DefaultObjectWrapperBuilder extends DefaultObjectWrapperConfigurati
     
         private static final DefaultObjectWrapperFactory INSTANCE = new DefaultObjectWrapperFactory(); 
         
+        @Override
         public DefaultObjectWrapper create(DefaultObjectWrapperConfiguration bwConf) {
             return new DefaultObjectWrapper(bwConf, true);
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/DefaultUnassignableIteratorAdapter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/DefaultUnassignableIteratorAdapter.java b/src/main/java/org/apache/freemarker/core/model/impl/DefaultUnassignableIteratorAdapter.java
index 9c63d10..8553736 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/DefaultUnassignableIteratorAdapter.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/DefaultUnassignableIteratorAdapter.java
@@ -42,6 +42,7 @@ class DefaultUnassignableIteratorAdapter implements TemplateModelIterator {
         this.wrapper = wrapper;
     }
 
+    @Override
     public TemplateModel next() throws TemplateModelException {
         try {
             return wrapper.wrap(it.next());
@@ -50,6 +51,7 @@ class DefaultUnassignableIteratorAdapter implements TemplateModelIterator {
         }
     }
 
+    @Override
     public boolean hasNext() throws TemplateModelException {
         return it.hasNext();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/MapKeyValuePairIterator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/MapKeyValuePairIterator.java b/src/main/java/org/apache/freemarker/core/model/impl/MapKeyValuePairIterator.java
index 77495be..e8797e7 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/MapKeyValuePairIterator.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/MapKeyValuePairIterator.java
@@ -47,18 +47,22 @@ public class MapKeyValuePairIterator implements KeyValuePairIterator {
         this.objectWrapper = objectWrapper;
     }
 
+    @Override
     public boolean hasNext() {
         return entrySetIterator.hasNext();
     }
 
+    @Override
     public KeyValuePair next() {
         final Entry<?, ?> entry = entrySetIterator.next();
         return new KeyValuePair() {
 
+            @Override
             public TemplateModel getKey() throws TemplateModelException {
                 return wrap(entry.getKey());
             }
 
+            @Override
             public TemplateModel getValue() throws TemplateModelException {
                 return wrap(entry.getValue());
             }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/SimpleCollection.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/SimpleCollection.java b/src/main/java/org/apache/freemarker/core/model/impl/SimpleCollection.java
index 46dbd25..8718d39 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/SimpleCollection.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/SimpleCollection.java
@@ -91,6 +91,7 @@ implements TemplateCollectionModel, Serializable {
      * <tt>TemplateModelException</tt> when you try to call their methods, since the wrapped <tt>Iterator</tt>
      * can't return the first element anymore.
      */
+    @Override
     public TemplateModelIterator iterator() {
         if (iterator != null) {
             return new SimpleTemplateModelIterator(iterator, false);
@@ -117,6 +118,7 @@ implements TemplateCollectionModel, Serializable {
             this.iteratorOwnedByMe = iteratorOwnedByMe;
         }
 
+        @Override
         public TemplateModel next() throws TemplateModelException {
             if (!iteratorOwnedByMe) { 
                 synchronized (SimpleCollection.this) {
@@ -134,6 +136,7 @@ implements TemplateCollectionModel, Serializable {
             return value instanceof TemplateModel ? (TemplateModel) value : wrap(value);
         }
 
+        @Override
         public boolean hasNext() throws TemplateModelException {
             // Calling hasNext may looks safe, but I have met sync. problems.
             if (!iteratorOwnedByMe) {

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java b/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
index 8f7ef80..92a5709 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/SimpleDate.java
@@ -66,10 +66,12 @@ public class SimpleDate implements TemplateDateModel {
         this.type = type;
     }
     
+    @Override
     public java.util.Date getAsDate() {
         return date;
     }
 
+    @Override
     public int getDateType() {
         return type;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java b/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
index 624eb9d..b6fe8d1 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/SimpleNumber.java
@@ -65,6 +65,7 @@ public final class SimpleNumber implements TemplateNumberModel, Serializable {
         this.value = Double.valueOf(val);
     }
 
+    @Override
     public Number getAsNumber() {
         return value;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/SimpleScalar.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/SimpleScalar.java b/src/main/java/org/apache/freemarker/core/model/impl/SimpleScalar.java
index b9114ca..ceb133d 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/SimpleScalar.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/SimpleScalar.java
@@ -50,6 +50,7 @@ implements TemplateScalarModel, Serializable {
         this.value = value;
     }
 
+    @Override
     public String getAsString() {
         return (value == null) ? "" : value;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/TemplateModelListSequence.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/TemplateModelListSequence.java b/src/main/java/org/apache/freemarker/core/model/impl/TemplateModelListSequence.java
index bdb64ac..5fe309b 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/TemplateModelListSequence.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/TemplateModelListSequence.java
@@ -38,10 +38,12 @@ public class TemplateModelListSequence implements TemplateSequenceModel {
         this.list = list;
     }
 
+    @Override
     public TemplateModel get(int index) {
         return (TemplateModel) list.get(index);
     }
 
+    @Override
     public int size() {
         return list.size();
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/ArrayModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/ArrayModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/ArrayModel.java
index 83416a0..8be341c 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/ArrayModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/ArrayModel.java
@@ -42,6 +42,7 @@ implements
     static final ModelFactory FACTORY =
         new ModelFactory()
         {
+            @Override
             public TemplateModel create(Object object, ObjectWrapper wrapper) {
                 return new ArrayModel(object, (BeansWrapper) wrapper);
             }
@@ -68,10 +69,12 @@ implements
     }
 
 
+    @Override
     public TemplateModelIterator iterator() {
         return new Iterator();
     }
 
+    @Override
     public TemplateModel get(int index)
     throws TemplateModelException {
         try {
@@ -88,20 +91,24 @@ implements
         TemplateModelIterator {
         private int position = 0;
 
+        @Override
         public boolean hasNext() {
             return position < length;
         }
 
+        @Override
         public TemplateModel get(int index)
         throws TemplateModelException {
             return ArrayModel.this.get(index);
         }
 
+        @Override
         public TemplateModel next()
         throws TemplateModelException {
             return position < length ? get(position++) : null;
         }
 
+        @Override
         public int size() {
             return ArrayModel.this.size();
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperBuilder.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperBuilder.java
index 55b5c96..ffd403e 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperBuilder.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/BeansWrapperBuilder.java
@@ -119,6 +119,7 @@ public class BeansWrapperBuilder extends BeansWrapperConfiguration {
         
         private static final BeansWrapperFactory INSTANCE = new BeansWrapperFactory(); 
 
+        @Override
         public BeansWrapper create(BeansWrapperConfiguration bwConf) {
             return new BeansWrapper(bwConf, true);
         }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/BooleanModel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/BooleanModel.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/BooleanModel.java
index 63a3111..857df36 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/BooleanModel.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/BooleanModel.java
@@ -33,6 +33,7 @@ public class BooleanModel extends BeanModel implements TemplateBooleanModel {
         value = bool.booleanValue();
     }
 
+    @Override
     public boolean getAsBoolean() {
         return value;
     }

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/693a94c4/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassBasedModelFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassBasedModelFactory.java b/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassBasedModelFactory.java
index f3274b6..1fd4d61 100644
--- a/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassBasedModelFactory.java
+++ b/src/main/java/org/apache/freemarker/core/model/impl/beans/ClassBasedModelFactory.java
@@ -42,6 +42,7 @@ abstract class ClassBasedModelFactory implements TemplateHashModel {
         this.wrapper = wrapper;
     }
 
+    @Override
     public TemplateModel get(String key) throws TemplateModelException {
         try {
             return getInternal(key);
@@ -132,6 +133,7 @@ abstract class ClassBasedModelFactory implements TemplateHashModel {
         }
     }
 
+    @Override
     public boolean isEmpty() {
         return false;
     }