You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2020/10/01 01:37:24 UTC

[groovy] branch master updated: add missing @Override annotations

This is an automated email from the ASF dual-hosted git repository.

paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/master by this push:
     new 5744d6e  add missing @Override annotations
5744d6e is described below

commit 5744d6ed8de9a44024ad6881dcf4e2bbd7dff9ba
Author: Paul King <pa...@asert.com.au>
AuthorDate: Thu Oct 1 05:22:05 2020 +1000

    add missing @Override annotations
---
 .../groovy/beans/BindableASTTransformation.java    |  1 +
 .../java/groovy/beans/DefaultPropertyAccessor.java |  2 +
 .../java/groovy/beans/DefaultPropertyReader.java   |  1 +
 .../java/groovy/beans/DefaultPropertyWriter.java   |  1 +
 .../groovy/beans/VetoableASTTransformation.java    |  2 +
 .../groovy/grape/GrabAnnotationTransformation.java |  4 +
 src/main/java/groovy/inspect/Inspector.java        |  1 +
 src/main/java/groovy/io/GroovyPrintStream.java     |  2 +
 src/main/java/groovy/io/GroovyPrintWriter.java     |  2 +
 src/main/java/groovy/io/PlatformLineWriter.java    |  3 +
 .../java/groovy/lang/BenchmarkInterceptor.java     |  3 +
 src/main/java/groovy/lang/Binding.java             |  2 +
 src/main/java/groovy/lang/Closure.java             | 22 +++++
 src/main/java/groovy/lang/DelegatingMetaClass.java | 39 +++++++++
 src/main/java/groovy/lang/ExpandoMetaClass.java    | 38 +++++++++
 .../lang/ExpandoMetaClassCreationHandle.java       |  1 +
 src/main/java/groovy/lang/GroovyClassLoader.java   |  6 ++
 .../java/groovy/lang/GroovyRuntimeException.java   |  1 +
 src/main/java/groovy/lang/GroovyShell.java         |  3 +
 src/main/java/groovy/lang/ListWithDefault.java     | 23 +++++
 src/main/java/groovy/lang/MapWithDefault.java      | 12 +++
 .../java/groovy/lang/MetaArrayLengthProperty.java  |  2 +
 src/main/java/groovy/lang/MetaBeanProperty.java    |  3 +
 src/main/java/groovy/lang/MetaClass.java           |  6 +-
 src/main/java/groovy/lang/MetaClassImpl.java       | 45 ++++++++++
 src/main/java/groovy/lang/MetaExpandoProperty.java |  2 +
 src/main/java/groovy/lang/MetaMethod.java          |  1 +
 .../java/groovy/lang/MissingPropertyException.java |  1 +
 src/main/java/groovy/lang/NonEmptySequence.java    |  1 +
 src/main/java/groovy/lang/ProxyMetaClass.java      |  2 +
 src/main/java/groovy/lang/Reference.java           |  3 +
 src/main/java/groovy/lang/Script.java              |  3 +
 src/main/java/groovy/lang/Sequence.java            | 13 +++
 src/main/java/groovy/lang/SpreadMap.java           |  3 +
 src/main/java/groovy/lang/TracingInterceptor.java  |  3 +
 src/main/java/groovy/time/BaseDuration.java        |  1 +
 .../java/groovy/time/DatumDependentDuration.java   |  6 ++
 src/main/java/groovy/time/Duration.java            |  4 +
 .../groovy/time/TimeDatumDependentDuration.java    |  6 ++
 src/main/java/groovy/time/TimeDuration.java        |  7 ++
 .../groovy/transform/builder/DefaultStrategy.java  |  1 +
 .../groovy/transform/builder/ExternalStrategy.java |  1 +
 .../transform/builder/InitializerStrategy.java     |  1 +
 .../groovy/transform/builder/SimpleStrategy.java   |  1 +
 .../groovy/transform/stc/MapEntryOrKeyValue.java   |  1 +
 .../transform/stc/SingleSignatureClosureHint.java  |  1 +
 src/main/java/groovy/ui/GroovyMain.java            |  1 +
 src/main/java/groovy/ui/GroovySocketServer.java    |  2 +
 src/main/java/groovy/util/AbstractFactory.java     | 20 +++--
 src/main/java/groovy/util/BuilderSupport.java      |  1 +
 src/main/java/groovy/util/ClosureComparator.java   |  1 +
 src/main/java/groovy/util/ConfigObject.java        | 15 ++++
 src/main/java/groovy/util/Expando.java             |  3 +
 .../java/groovy/util/FactoryBuilderSupport.java    |  9 ++
 src/main/java/groovy/util/GroovyScriptEngine.java  |  1 +
 src/main/java/groovy/util/MapEntry.java            |  3 +
 src/main/java/groovy/util/NodeBuilder.java         |  5 ++
 src/main/java/groovy/util/ObjectGraphBuilder.java  | 19 +++++
 src/main/java/groovy/util/ObservableList.java      | 32 +++++++
 src/main/java/groovy/util/ObservableMap.java       | 12 +++
 src/main/java/groovy/util/ObservableSet.java       | 16 ++++
 src/main/java/groovy/util/OrderBy.java             |  1 +
 .../java/groovy/util/PermutationGenerator.java     |  3 +
 src/main/java/groovy/util/Proxy.java               |  1 +
 .../java/org/apache/groovy/antlr/LexerFrame.java   |  3 +
 .../java/org/codehaus/groovy/GroovyBugError.java   |  2 +
 .../java/org/codehaus/groovy/GroovyException.java  |  2 +
 .../java/org/codehaus/groovy/ast/ClassNode.java    |  2 +
 .../org/codehaus/groovy/ast/DynamicVariable.java   | 10 +++
 .../org/codehaus/groovy/ast/InnerClassNode.java    |  2 +
 .../groovy/ast/MethodCallTransformation.java       |  1 +
 .../codehaus/groovy/ast/MethodInvocationTrap.java  |  1 +
 .../groovy/ast/MixinASTTransformation.java         |  1 +
 .../java/org/codehaus/groovy/ast/PackageNode.java  |  2 +
 .../java/org/codehaus/groovy/ast/Parameter.java    | 10 +++
 .../java/org/codehaus/groovy/ast/PropertyNode.java | 10 +++
 .../ast/expr/AnnotationConstantExpression.java     |  1 +
 .../groovy/ast/expr/ArgumentListExpression.java    |  2 +
 .../codehaus/groovy/ast/expr/ArrayExpression.java  |  3 +
 .../codehaus/groovy/ast/expr/BinaryExpression.java |  3 +
 .../groovy/ast/expr/BitwiseNegationExpression.java |  4 +
 .../groovy/ast/expr/BooleanExpression.java         |  3 +
 .../codehaus/groovy/ast/expr/ClassExpression.java  |  3 +
 .../groovy/ast/expr/ClosureExpression.java         |  2 +
 .../groovy/ast/expr/ClosureListExpression.java     |  3 +
 .../groovy/ast/expr/ConstantExpression.java        |  3 +
 .../groovy/ast/expr/ConstructorCallExpression.java |  6 ++
 .../groovy/ast/expr/ElvisOperatorExpression.java   |  2 +
 .../groovy/ast/expr/GStringExpression.java         |  3 +
 .../codehaus/groovy/ast/expr/LambdaExpression.java |  1 +
 .../codehaus/groovy/ast/expr/ListExpression.java   |  3 +
 .../groovy/ast/expr/MapEntryExpression.java        |  2 +
 .../codehaus/groovy/ast/expr/MapExpression.java    |  3 +
 .../groovy/ast/expr/MethodCallExpression.java      |  6 ++
 .../groovy/ast/expr/MethodPointerExpression.java   |  3 +
 .../ast/expr/NamedArgumentListExpression.java      |  1 +
 .../codehaus/groovy/ast/expr/NotExpression.java    |  2 +
 .../groovy/ast/expr/PostfixExpression.java         |  4 +
 .../codehaus/groovy/ast/expr/PrefixExpression.java |  4 +
 .../codehaus/groovy/ast/expr/RangeExpression.java  |  3 +
 .../codehaus/groovy/ast/expr/SpreadExpression.java |  4 +
 .../groovy/ast/expr/SpreadMapExpression.java       |  4 +
 .../ast/expr/StaticMethodCallExpression.java       |  6 ++
 .../groovy/ast/expr/TernaryExpression.java         |  4 +
 .../codehaus/groovy/ast/expr/TupleExpression.java  |  4 +
 .../groovy/ast/expr/UnaryMinusExpression.java      |  4 +
 .../groovy/ast/expr/UnaryPlusExpression.java       |  4 +
 .../groovy/ast/expr/VariableExpression.java        | 14 ++++
 .../codehaus/groovy/ast/stmt/AssertStatement.java  |  1 +
 .../codehaus/groovy/ast/stmt/BlockStatement.java   |  3 +
 .../codehaus/groovy/ast/stmt/BreakStatement.java   |  1 +
 .../codehaus/groovy/ast/stmt/CaseStatement.java    |  1 +
 .../codehaus/groovy/ast/stmt/CatchStatement.java   |  1 +
 .../groovy/ast/stmt/ContinueStatement.java         |  1 +
 .../codehaus/groovy/ast/stmt/DoWhileStatement.java |  3 +
 .../groovy/ast/stmt/ExpressionStatement.java       |  2 +
 .../org/codehaus/groovy/ast/stmt/ForStatement.java |  3 +
 .../org/codehaus/groovy/ast/stmt/IfStatement.java  |  1 +
 .../codehaus/groovy/ast/stmt/SwitchStatement.java  |  1 +
 .../groovy/ast/stmt/SynchronizedStatement.java     |  1 +
 .../codehaus/groovy/ast/stmt/ThrowStatement.java   |  1 +
 .../groovy/ast/stmt/TryCatchStatement.java         |  1 +
 .../codehaus/groovy/ast/stmt/WhileStatement.java   |  3 +
 .../groovy/classgen/AsmClassGenerator.java         |  5 ++
 .../groovy/classgen/BytecodeExpression.java        |  3 +
 .../codehaus/groovy/classgen/BytecodeSequence.java |  1 +
 .../groovy/classgen/ClassCompletionVerifier.java   | 11 +++
 .../codehaus/groovy/classgen/ClassGenerator.java   |  1 +
 .../groovy/classgen/DummyClassGenerator.java       |  6 ++
 .../groovy/classgen/EnumCompletionVisitor.java     |  3 +
 .../org/codehaus/groovy/classgen/Verifier.java     |  1 +
 .../groovy/classgen/VerifierCodeVisitor.java       |  5 ++
 .../asm/BinaryBooleanExpressionHelper.java         | 10 +++
 .../classgen/asm/BinaryDoubleExpressionHelper.java | 10 +++
 .../classgen/asm/BinaryFloatExpressionHelper.java  | 12 +++
 .../classgen/asm/BinaryIntExpressionHelper.java    | 12 +++
 .../classgen/asm/BinaryLongExpressionHelper.java   | 10 +++
 .../classgen/asm/BinaryObjectExpressionHelper.java | 13 +++
 .../sc/IndyStaticTypesMultiTypeDispatcher.java     |  1 +
 .../asm/sc/StaticCompilationMopWriter.java         |  1 +
 .../sc/StaticTypesWriterControllerFactoryImpl.java |  1 +
 .../groovy/control/AnnotationConstantsVisitor.java |  1 +
 .../codehaus/groovy/control/ClassNodeResolver.java |  1 +
 .../groovy/control/ConfigurationException.java     |  3 +
 .../codehaus/groovy/control/GenericsVisitor.java   |  1 +
 .../java/org/codehaus/groovy/control/Janitor.java  |  1 +
 .../org/codehaus/groovy/control/LabelVerifier.java |  9 ++
 .../MultipleCompilationErrorsException.java        |  1 +
 .../codehaus/groovy/control/OptimizerVisitor.java  |  3 +
 .../groovy/control/StaticImportVisitor.java        |  1 +
 .../customizers/builder/CustomizersFactory.java    |  2 +
 .../builder/ImportCustomizerFactory.java           |  1 +
 .../builder/InlinedASTCustomizerFactory.java       |  2 +
 .../builder/SecureASTCustomizerFactory.java        |  1 +
 .../builder/SourceAwareCustomizerFactory.java      |  2 +
 .../groovy/control/io/AbstractReaderSource.java    |  3 +
 .../groovy/control/io/FileReaderSource.java        |  2 +
 .../groovy/control/io/InputStreamReaderSource.java |  3 +
 .../org/codehaus/groovy/control/io/NullWriter.java |  5 +-
 .../codehaus/groovy/control/io/ReaderSource.java   |  3 +-
 .../groovy/control/io/StringReaderSource.java      |  2 +
 .../groovy/control/io/URLReaderSource.java         |  2 +
 .../groovy/control/messages/ExceptionMessage.java  |  1 +
 .../groovy/control/messages/LocatedMessage.java    |  1 +
 .../groovy/control/messages/SimpleMessage.java     |  1 +
 .../control/messages/SyntaxErrorMessage.java       |  1 +
 .../groovy/control/messages/WarningMessage.java    |  1 +
 .../groovy/reflection/CachedConstructor.java       |  1 +
 .../codehaus/groovy/reflection/CachedMethod.java   | 11 +++
 .../org/codehaus/groovy/reflection/ClassInfo.java  |  2 +
 .../reflection/ClassLoaderForClassArtifacts.java   |  1 +
 .../groovy/reflection/GeneratedMetaMethod.java     |  5 ++
 .../groovy/reflection/MixinInMetaClass.java        |  1 +
 .../codehaus/groovy/reflection/SunClassLoader.java |  1 +
 .../reflection/stdclasses/ArrayCachedClass.java    |  1 +
 .../stdclasses/BigDecimalCachedClass.java          |  2 +
 .../stdclasses/BigIntegerCachedClass.java          |  2 +
 .../reflection/stdclasses/BooleanCachedClass.java  |  2 +
 .../reflection/stdclasses/ByteCachedClass.java     |  3 +
 .../stdclasses/CharacterCachedClass.java           |  2 +
 .../reflection/stdclasses/DoubleCachedClass.java   |  3 +
 .../reflection/stdclasses/FloatCachedClass.java    |  3 +
 .../reflection/stdclasses/IntegerCachedClass.java  |  3 +
 .../reflection/stdclasses/LongCachedClass.java     |  3 +
 .../reflection/stdclasses/NumberCachedClass.java   |  2 +
 .../reflection/stdclasses/ObjectCachedClass.java   |  2 +
 .../reflection/stdclasses/ShortCachedClass.java    |  3 +
 .../reflection/stdclasses/StringCachedClass.java   |  3 +
 .../codehaus/groovy/runtime/ComposedClosure.java   |  6 ++
 .../codehaus/groovy/runtime/ConversionHandler.java |  1 +
 .../codehaus/groovy/runtime/CurriedClosure.java    |  6 ++
 .../groovy/runtime/DefaultCachedMethodKey.java     |  2 +
 .../groovy/runtime/DefaultGroovyMethods.java       | 28 +++++++
 .../codehaus/groovy/runtime/DefaultMethodKey.java  |  2 +
 .../groovy/runtime/EncodingGroovyMethods.java      |  2 +
 .../groovy/runtime/FlushingStreamWriter.java       |  3 +
 .../groovy/runtime/GroovyCategorySupport.java      |  3 +
 .../codehaus/groovy/runtime/HandleMetaClass.java   |  8 ++
 .../codehaus/groovy/runtime/IOGroovyMethods.java   |  8 ++
 .../org/codehaus/groovy/runtime/InvokerHelper.java |  2 +
 .../groovy/runtime/InvokerInvocationException.java |  1 +
 .../groovy/runtime/IteratorClosureAdapter.java     |  2 +
 .../org/codehaus/groovy/runtime/MethodClosure.java |  1 +
 .../codehaus/groovy/runtime/MethodRankHelper.java  |  3 +
 .../org/codehaus/groovy/runtime/NullObject.java    |  4 +
 .../groovy/runtime/NumberAwareComparator.java      |  1 +
 .../groovy/runtime/ProcessGroovyMethods.java       |  3 +
 .../groovy/runtime/ProxyGeneratorAdapter.java      |  2 +
 .../groovy/runtime/ReverseListIterator.java        |  3 +
 .../codehaus/groovy/runtime/ScriptReference.java   |  2 +
 .../groovy/runtime/StringBufferWriter.java         |  6 ++
 .../groovy/runtime/StringGroovyMethods.java        |  9 ++
 .../org/codehaus/groovy/runtime/WritableFile.java  |  1 +
 .../runtime/callsite/CallSiteClassLoader.java      |  1 +
 .../callsite/ClassMetaClassGetPropertySite.java    |  2 +
 .../runtime/callsite/ConstructorMetaClassSite.java |  1 +
 .../callsite/ConstructorMetaMethodSite.java        |  1 +
 .../groovy/runtime/callsite/ConstructorSite.java   |  5 ++
 .../callsite/GetEffectivePogoPropertySite.java     |  5 ++
 .../callsite/GetEffectivePojoPropertySite.java     |  2 +
 .../runtime/callsite/GroovySunClassLoader.java     |  1 +
 .../runtime/callsite/MetaClassConstructorSite.java |  1 +
 .../groovy/runtime/callsite/NullCallSite.java      |  2 +
 .../callsite/PerInstancePojoMetaClassSite.java     |  1 +
 .../runtime/callsite/PogoGetPropertySite.java      |  3 +
 .../runtime/callsite/PogoInterceptableSite.java    |  2 +
 .../callsite/PogoMetaClassGetPropertySite.java     |  3 +
 .../groovy/runtime/callsite/PogoMetaClassSite.java |  2 +
 .../runtime/callsite/PogoMetaMethodSite.java       |  7 ++
 .../callsite/PojoMetaClassGetPropertySite.java     |  3 +
 .../groovy/runtime/callsite/PojoMetaClassSite.java |  1 +
 .../runtime/callsite/PojoMetaMethodSite.java       |  6 ++
 .../runtime/callsite/StaticMetaClassSite.java      |  2 +
 .../runtime/callsite/StaticMetaMethodSite.java     |  4 +
 .../groovy/runtime/dgmimpl/NumberNumberDiv.java    | 34 ++++++++
 .../runtime/dgmimpl/NumberNumberMetaMethod.java    |  4 +
 .../groovy/runtime/dgmimpl/NumberNumberMinus.java  | 36 ++++++++
 .../runtime/dgmimpl/NumberNumberMultiply.java      | 36 ++++++++
 .../groovy/runtime/dgmimpl/NumberNumberPlus.java   | 36 ++++++++
 .../dgmimpl/arrays/ArrayGetAtMetaMethod.java       |  1 +
 .../runtime/dgmimpl/arrays/ArrayMetaMethod.java    |  1 +
 .../dgmimpl/arrays/ArrayPutAtMetaMethod.java       |  2 +
 .../arrays/BooleanArrayGetAtMetaMethod.java        |  5 ++
 .../arrays/BooleanArrayPutAtMetaMethod.java        |  5 ++
 .../dgmimpl/arrays/ByteArrayGetAtMetaMethod.java   |  5 ++
 .../dgmimpl/arrays/ByteArrayPutAtMetaMethod.java   |  5 ++
 .../arrays/CharacterArrayGetAtMetaMethod.java      |  5 ++
 .../arrays/CharacterArrayPutAtMetaMethod.java      |  5 ++
 .../dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java |  5 ++
 .../dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java |  5 ++
 .../dgmimpl/arrays/FloatArrayGetAtMetaMethod.java  |  5 ++
 .../dgmimpl/arrays/FloatArrayPutAtMetaMethod.java  |  5 ++
 .../arrays/IntegerArrayGetAtMetaMethod.java        |  5 ++
 .../arrays/IntegerArrayPutAtMetaMethod.java        |  5 ++
 .../dgmimpl/arrays/LongArrayGetAtMetaMethod.java   |  5 ++
 .../dgmimpl/arrays/LongArrayPutAtMetaMethod.java   |  5 ++
 .../dgmimpl/arrays/ObjectArrayGetAtMetaMethod.java |  5 ++
 .../dgmimpl/arrays/ObjectArrayPutAtMetaMethod.java |  4 +
 .../dgmimpl/arrays/ShortArrayGetAtMetaMethod.java  |  5 ++
 .../dgmimpl/arrays/ShortArrayPutAtMetaMethod.java  |  5 ++
 .../groovy/runtime/memoize/EvictableCache.java     |  5 ++
 .../codehaus/groovy/runtime/memoize/LRUCache.java  |  1 +
 .../runtime/memoize/LRUProtectionStorage.java      |  1 +
 .../runtime/memoize/NullProtectionStorage.java     |  1 +
 .../groovy/runtime/metaclass/ClosureMetaClass.java | 19 +++++
 .../runtime/metaclass/ClosureMetaMethod.java       | 12 +++
 .../runtime/metaclass/ClosureStaticMetaMethod.java |  6 ++
 .../runtime/metaclass/ConcurrentReaderHashMap.java | 43 ++++++++++
 .../runtime/metaclass/MetaClassRegistryImpl.java   | 14 ++++
 .../groovy/runtime/metaclass/MetaMethodIndex.java  |  2 +
 .../runtime/metaclass/MethodMetaProperty.java      |  2 +
 .../metaclass/MethodSelectionException.java        |  1 +
 .../metaclass/MissingMethodExceptionNoStack.java   |  1 +
 .../metaclass/MissingMethodExecutionFailed.java    |  1 +
 .../metaclass/MissingPropertyExceptionNoStack.java |  1 +
 .../groovy/runtime/metaclass/MixedInMetaClass.java |  3 +
 .../runtime/metaclass/MixinInstanceMetaMethod.java |  6 ++
 .../metaclass/MixinInstanceMetaProperty.java       | 10 +++
 .../runtime/metaclass/NewInstanceMetaMethod.java   |  3 +
 .../groovy/runtime/metaclass/NewMetaMethod.java    |  1 +
 .../runtime/metaclass/NewStaticMetaMethod.java     |  3 +
 .../groovy/runtime/metaclass/OwnedMetaClass.java   | 28 +++++++
 .../runtime/metaclass/ReflectionMetaMethod.java    |  6 ++
 .../groovy/runtime/metaclass/ReflectorLoader.java  |  2 +
 .../runtime/metaclass/TemporaryMethodKey.java      |  2 +
 .../metaclass/ThreadManagedMetaBeanProperty.java   | 12 +++
 .../runtime/metaclass/TransformMetaMethod.java     |  5 ++
 .../runtime/typehandling/BigDecimalMath.java       |  8 ++
 .../runtime/typehandling/BigIntegerMath.java       | 16 ++++
 .../runtime/typehandling/FloatingPointMath.java    |  9 ++
 .../groovy/runtime/typehandling/IntegerMath.java   | 17 ++++
 .../groovy/runtime/typehandling/LongMath.java      | 17 ++++
 .../runtime/wrappers/GroovyObjectWrapper.java      |  7 ++
 .../groovy/runtime/wrappers/PojoWrapper.java       |  7 ++
 .../codehaus/groovy/runtime/wrappers/Wrapper.java  |  1 +
 .../org/codehaus/groovy/syntax/ReadException.java  |  1 +
 .../java/org/codehaus/groovy/syntax/Reduction.java |  9 ++
 .../codehaus/groovy/syntax/SyntaxException.java    |  1 +
 .../java/org/codehaus/groovy/syntax/Token.java     | 10 +++
 .../java/org/codehaus/groovy/tools/RootLoader.java |  4 +
 .../codehaus/groovy/tools/gse/StringSetMap.java    |  1 +
 .../tools/javac/JavaAwareResolveVisitor.java       |  2 +
 .../groovy/tools/javac/JavaStubGenerator.java      |  7 ++
 .../groovy/tools/javac/JavacCompilerFactory.java   |  1 +
 .../groovy/tools/javac/JavacJavaCompiler.java      |  1 +
 .../groovy/tools/javac/RawJavaFileObject.java      |  2 +
 .../java/org/codehaus/groovy/tools/shell/IO.java   |  1 +
 .../groovy/tools/shell/util/MessageSource.java     |  1 +
 .../groovy/tools/shell/util/Preferences.java       |  1 +
 .../groovy/transform/ASTTransformationVisitor.java |  3 +
 .../transform/AbstractASTTransformation.java       |  1 +
 .../AbstractInterruptibleASTTransformation.java    |  2 +
 .../transform/AutoCloneASTTransformation.java      |  1 +
 .../transform/AutoFinalASTTransformation.java      |  2 +
 .../transform/AutoImplementASTTransformation.java  |  1 +
 .../transform/BaseScriptASTTransformation.java     |  1 +
 .../groovy/transform/BuilderASTTransformation.java |  2 +
 .../transform/CategoryASTTransformation.java       |  2 +
 .../groovy/transform/CompileDynamicProcessor.java  |  1 +
 .../transform/DelegateASTTransformation.java       |  1 +
 .../EqualsAndHashCodeASTTransformation.java        |  1 +
 .../ExternalizeMethodsASTTransformation.java       |  1 +
 .../ExternalizeVerifierASTTransformation.java      |  1 +
 .../groovy/transform/FieldASTTransformation.java   |  2 +
 .../transform/ImmutableASTTransformation.java      |  1 +
 .../IndexedPropertyASTTransformation.java          |  1 +
 .../InheritConstructorsASTTransformation.java      |  1 +
 .../groovy/transform/LazyASTTransformation.java    |  1 +
 .../transform/MapConstructorASTTransformation.java |  1 +
 .../transform/MemoizedASTTransformation.java       |  1 +
 .../groovy/transform/NewifyASTTransformation.java  |  3 +
 .../transform/PackageScopeASTTransformation.java   |  1 +
 .../transform/ReadWriteLockASTTransformation.java  |  1 +
 .../transform/RecordTypeASTTransformation.java     |  1 +
 .../transform/SingletonASTTransformation.java      |  1 +
 .../transform/SortableASTTransformation.java       |  1 +
 .../transform/SourceURIASTTransformation.java      |  1 +
 .../transform/StaticTypesTransformation.java       |  2 +
 .../transform/SynchronizedASTTransformation.java   |  1 +
 .../transform/ToStringASTTransformation.java       |  1 +
 .../TupleConstructorASTTransformation.java         |  1 +
 .../stc/DefaultTypeCheckingExtension.java          |  4 +
 .../transform/stc/SignatureCodecVersion1.java      |  2 +
 .../groovy/util/AbstractConcurrentMap.java         |  1 +
 .../org/codehaus/groovy/util/ArrayIterator.java    |  3 +
 .../codehaus/groovy/util/ComplexKeyHashMap.java    |  2 +
 .../java/org/codehaus/groovy/util/FastArray.java   |  2 +
 .../groovy/util/IteratorBufferedIterator.java      |  4 +
 .../codehaus/groovy/util/ListBufferedIterator.java |  4 +
 .../java/org/codehaus/groovy/util/ListHashMap.java | 12 +++
 .../org/codehaus/groovy/util/LockableObject.java   |  3 +
 .../codehaus/groovy/util/ManagedConcurrentMap.java |  7 ++
 .../codehaus/groovy/util/ManagedLinkedList.java    |  3 +
 .../org/codehaus/groovy/util/ManagedReference.java |  1 +
 .../org/codehaus/groovy/util/ReferenceType.java    |  6 ++
 .../org/codehaus/groovy/vmplugin/v8/Java8.java     |  5 ++
 .../org/codehaus/groovy/vmplugin/v9/Java9.java     |  1 +
 .../src/main/java/groovy/ant/AntBuilder.java       | 11 +++
 .../groovy/ant/AntProjectPropertiesDelegate.java   | 16 ++++
 .../codehaus/groovy/ant/CompileTaskSupport.java    |  1 +
 .../java/org/codehaus/groovy/ant/FileIterator.java |  3 +
 .../main/java/org/codehaus/groovy/ant/Groovy.java  |  8 ++
 .../main/java/org/codehaus/groovy/ant/Groovyc.java |  1 +
 .../java/org/codehaus/groovy/ant/GroovycTask.java  |  1 +
 .../java/org/codehaus/groovy/ant/Groovydoc.java    |  1 +
 .../org/codehaus/groovy/ant/RootLoaderRef.java     |  1 +
 .../org/codehaus/groovy/ant/UberCompileTask.java   |  4 +
 .../java/org/codehaus/groovy/ant/VerifyClass.java  |  1 +
 .../codehaus/groovy/bsf/CachingGroovyEngine.java   |  3 +
 .../java/org/codehaus/groovy/bsf/GroovyEngine.java |  7 ++
 .../groovy/console/ui/ConsoleTextEditor.java       | 13 +++
 .../groovy/console/ui/SystemOutputInterceptor.java |  2 +
 .../groovy/console/ui/text/FindReplaceUtility.java |  5 ++
 .../groovy/console/ui/text/GroovyFilter.java       |  1 +
 .../ui/text/StructuredSyntaxDocumentFilter.java    |  6 +-
 .../console/ui/text/StructuredSyntaxHandler.java   |  6 ++
 .../groovy/groovy/console/ui/text/TextEditor.java  | 18 ++++
 .../groovy/console/ui/text/TextUndoManager.java    | 10 +++
 ...osureExpressionEvaluationASTTransformation.java |  1 +
 .../contracts/ast/GContractsASTTransformation.java |  1 +
 .../contracts/common/base/BaseLifecycle.java       |  6 ++
 .../groovy/contracts/domain/AssertionMap.java      |  1 +
 .../util/LifecycleImplementationLoader.java        |  7 ++
 .../tools/groovydoc/ArrayClassDocWrapper.java      | 62 ++++++++++++++
 .../tools/groovydoc/ClasspathResourceManager.java  |  1 +
 .../tools/groovydoc/ExternalGroovyClassDoc.java    | 62 ++++++++++++++
 .../groovy/tools/groovydoc/FileOutputTool.java     |  2 +
 .../tools/groovydoc/FileSystemResourceManager.java |  1 +
 .../groovy/tools/groovydoc/MockOutputTool.java     |  2 +
 .../tools/groovydoc/SimpleGroovyAnnotationRef.java |  3 +
 .../tools/groovydoc/SimpleGroovyClassDoc.java      | 31 +++++++
 .../groovy/tools/groovydoc/SimpleGroovyDoc.java    | 20 +++++
 .../groovydoc/SimpleGroovyExecutableMemberDoc.java |  8 ++
 .../tools/groovydoc/SimpleGroovyFieldDoc.java      |  5 ++
 .../tools/groovydoc/SimpleGroovyMemberDoc.java     |  3 +
 .../tools/groovydoc/SimpleGroovyMethodDoc.java     |  6 ++
 .../tools/groovydoc/SimpleGroovyPackageDoc.java    | 12 +++
 .../tools/groovydoc/SimpleGroovyParameter.java     |  5 ++
 .../groovydoc/SimpleGroovyProgramElementDoc.java   | 12 +++
 .../tools/groovydoc/SimpleGroovyRootDoc.java       | 10 +++
 .../groovy/tools/groovydoc/SimpleGroovyTag.java    |  3 +
 .../groovy/tools/groovydoc/SimpleGroovyType.java   |  4 +
 .../tools/groovydoc/antlr4/GroovyDocParser.java    |  1 +
 .../src/main/java/groovy/jmx/GroovyMBean.java      |  3 +
 .../groovy/jmx/builder/JmxBuilderModelMBean.java   |  2 +
 .../java/groovy/jmx/builder/JmxEventEmitter.java   |  3 +
 .../java/groovy/jmx/builder/JmxEventListener.java  |  1 +
 .../src/main/java/groovy/json/JsonBuilder.java     |  2 +
 .../src/main/java/groovy/json/JsonDelegate.java    |  1 +
 .../src/main/java/groovy/json/JsonLexer.java       |  3 +
 .../java/groovy/json/StreamingJsonBuilder.java     |  2 +
 .../groovy/json/internal/BaseJsonParser.java       |  8 ++
 .../org/apache/groovy/json/internal/CharBuf.java   |  7 ++
 .../groovy/json/internal/CharSequenceValue.java    | 20 +++++
 .../apache/groovy/json/internal/Exceptions.java    |  7 ++
 .../groovy/json/internal/JsonFastParser.java       |  2 +
 .../groovy/json/internal/JsonParserCharArray.java  |  1 +
 .../apache/groovy/json/internal/JsonParserLax.java |  2 +
 .../internal/JsonParserUsingCharacterSource.java   |  2 +
 .../apache/groovy/json/internal/LazyValueMap.java  |  9 ++
 .../apache/groovy/json/internal/MapItemValue.java  |  3 +
 .../apache/groovy/json/internal/NumberValue.java   | 17 ++++
 .../json/internal/ReaderCharacterSource.java       | 11 +++
 .../apache/groovy/json/internal/SimpleCache.java   |  5 ++
 .../groovy/json/internal/ValueContainer.java       | 20 +++++
 .../org/apache/groovy/json/internal/ValueList.java |  5 ++
 .../apache/groovy/json/internal/ValueMapImpl.java  |  9 ++
 .../groovy/jsr223/GroovyCompiledScript.java        |  2 +
 .../groovy/jsr223/GroovyScriptEngineFactory.java   | 12 +++
 .../groovy/jsr223/GroovyScriptEngineImpl.java      | 10 +++
 .../groovy/macro/runtime/MacroBuilder.java         |  1 +
 .../apache/groovy/nio/runtime/WritablePath.java    |  1 +
 .../java/groovy/servlet/AbstractHttpServlet.java   |  2 +
 .../main/java/groovy/servlet/GroovyServlet.java    |  3 +
 .../main/java/groovy/servlet/ServletBinding.java   | 18 +++-
 .../main/java/groovy/servlet/TemplateServlet.java  |  2 +
 .../src/main/java/groovy/sql/CallResultSet.java    |  1 +
 .../java/groovy/sql/GroovyResultSetExtension.java  |  3 +
 .../main/java/groovy/sql/GroovyResultSetProxy.java |  1 +
 .../src/main/java/groovy/sql/GroovyRowResult.java  | 13 +++
 .../groovy-sql/src/main/java/groovy/sql/Sql.java   | 98 +++++++++++++++-------
 .../main/java/groovy/sql/SqlOrderByVisitor.java    |  2 +
 .../src/main/java/groovy/sql/SqlWhereVisitor.java  |  5 ++
 .../groovy/sql/extensions/SqlExtensions.java       |  3 +
 .../swing/binding/AbstractButtonProperties.java    |  5 ++
 .../swing/binding/AbstractSyntheticBinding.java    |  5 ++
 .../groovy/swing/binding/JComboBoxProperties.java  | 20 +++++
 .../groovy/swing/binding/JComponentProperties.java | 23 +++++
 .../groovy/swing/binding/JScrollBarProperties.java |  6 ++
 .../groovy/swing/binding/JSliderProperties.java    |  5 ++
 .../groovy/swing/binding/JSpinnerProperties.java   |  5 ++
 .../groovy/swing/binding/JTableProperties.java     | 11 +++
 .../swing/binding/JTextComponentProperties.java    |  7 ++
 .../groovy/groovy/swing/impl/ClosureRenderer.java  |  3 +
 .../groovy/groovy/swing/impl/DefaultAction.java    |  1 +
 .../groovy/swing/impl/ListWrapperListModel.java    |  2 +
 .../main/java/groovy/swing/model/ClosureModel.java |  5 ++
 .../java/groovy/swing/model/DefaultTableModel.java |  9 ++
 .../java/groovy/swing/model/PropertyModel.java     |  5 ++
 .../main/java/groovy/swing/model/ValueHolder.java  |  4 +
 .../src/main/java/groovy/swing/table/TableMap.java |  8 ++
 .../main/java/groovy/swing/table/TableSorter.java  |  5 ++
 .../groovy/swing/binding/AbstractFullBinding.java  | 12 +++
 .../groovy/swing/binding/AggregateBinding.java     |  5 ++
 .../apache/groovy/swing/binding/BindingProxy.java  |  8 ++
 .../groovy/swing/binding/ClosureSourceBinding.java |  1 +
 .../swing/binding/ClosureTriggerBinding.java       |  5 ++
 .../groovy/swing/binding/EventTriggerBinding.java  |  5 ++
 .../swing/binding/MutualPropertyBinding.java       | 15 ++++
 .../groovy/swing/binding/PropertyBinding.java      | 10 +++
 .../binding/PropertyChangeProxyTargetBinding.java  |  1 +
 .../swing/binding/PropertyPathFullBinding.java     |  4 +
 .../swing/binding/SwingTimerTriggerBinding.java    |  5 ++
 .../groovy/swing/extensions/SwingExtensions.java   | 21 +++++
 .../groovy/groovy/text/GStringTemplateEngine.java  |  3 +
 .../groovy/groovy/text/SimpleTemplateEngine.java   |  4 +
 .../main/groovy/groovy/text/XmlTemplateEngine.java |  8 ++
 .../groovy/groovy/text/markup/BaseTemplate.java    |  1 +
 .../groovy/text/markup/MarkupTemplateEngine.java   |  5 ++
 .../mock/interceptor/MockProxyMetaClass.java       |  5 ++
 .../src/main/java/groovy/test/GroovyTestCase.java  |  1 +
 .../org/apache/groovy/test/ScriptTestAdapter.java  |  2 +
 .../NotYetImplementedASTTransformation.java        |  1 +
 .../src/main/java/groovy/xml/DOMBuilder.java       |  5 ++
 .../src/main/java/groovy/xml/MarkupBuilder.java    |  8 ++
 .../src/main/java/groovy/xml/SAXBuilder.java       |  6 ++
 .../src/main/java/groovy/xml/XmlParser.java        | 11 +++
 .../src/main/java/groovy/xml/XmlSlurper.java       |  7 ++
 .../src/main/java/groovy/xml/dom/DOMCategory.java  |  4 +
 .../xml/markupsupport/AllControlToUndefined.java   |  1 +
 .../xml/markupsupport/DoubleQuoteFilter.java       |  1 +
 .../xml/markupsupport/SingleQuoteFilter.java       |  1 +
 .../markupsupport/StandardControlToUndefined.java  |  1 +
 .../markupsupport/StandardXmlAttributeFilter.java  |  1 +
 .../xml/markupsupport/StandardXmlFilter.java       |  1 +
 .../xml/markupsupport/SurrogateToUndefined.java    |  1 +
 .../java/groovy/xml/slurpersupport/Attribute.java  | 14 ++++
 .../java/groovy/xml/slurpersupport/Attributes.java | 11 +++
 .../xml/slurpersupport/FilteredAttributes.java     |  2 +
 .../xml/slurpersupport/FilteredNodeChildren.java   |  3 +
 .../groovy/xml/slurpersupport/GPathResult.java     | 12 +++
 .../java/groovy/xml/slurpersupport/NoChildren.java | 16 ++++
 .../main/java/groovy/xml/slurpersupport/Node.java  |  6 ++
 .../java/groovy/xml/slurpersupport/NodeChild.java  | 15 ++++
 .../groovy/xml/slurpersupport/NodeChildren.java    | 20 +++++
 .../groovy/xml/slurpersupport/NodeIterator.java    |  3 +
 .../groovy/xml/slurpersupport/NodeParents.java     |  2 +
 .../groovy/xml/slurpersupport/ReplacementNode.java |  2 +
 .../streamingmarkupsupport/BaseMarkupBuilder.java  | 10 +++
 .../StreamingMarkupWriter.java                     |  8 ++
 .../groovy/xml/extensions/XmlExtensions.java       |  3 +
 .../antlr4/internal/DescriptiveErrorStrategy.java  |  2 +
 512 files changed, 2748 insertions(+), 42 deletions(-)

diff --git a/src/main/java/groovy/beans/BindableASTTransformation.java b/src/main/java/groovy/beans/BindableASTTransformation.java
index e19abfe..4e13e5e 100644
--- a/src/main/java/groovy/beans/BindableASTTransformation.java
+++ b/src/main/java/groovy/beans/BindableASTTransformation.java
@@ -97,6 +97,7 @@ public class BindableASTTransformation implements ASTTransformation, Opcodes {
      * @param nodes   the ast nodes
      * @param source  the source unit for the nodes
      */
+    @Override
     public void visit(ASTNode[] nodes, SourceUnit source) {
         if (!(nodes[0] instanceof AnnotationNode) || !(nodes[1] instanceof AnnotatedNode)) {
             throw new RuntimeException("Internal error: wrong types: $node.class / $parent.class");
diff --git a/src/main/java/groovy/beans/DefaultPropertyAccessor.java b/src/main/java/groovy/beans/DefaultPropertyAccessor.java
index 2135349..f0e3f9d 100644
--- a/src/main/java/groovy/beans/DefaultPropertyAccessor.java
+++ b/src/main/java/groovy/beans/DefaultPropertyAccessor.java
@@ -21,10 +21,12 @@ package groovy.beans;
 public class DefaultPropertyAccessor implements PropertyAccessor {
     public static final PropertyAccessor INSTANCE = new DefaultPropertyAccessor();
 
+    @Override
     public Object read(Object owner, String propertyName) {
         return DefaultPropertyReader.INSTANCE.read(owner, propertyName);
     }
 
+    @Override
     public void write(Object owner, String propertyName, Object value) {
         DefaultPropertyWriter.INSTANCE.write(owner, propertyName, value);
     }
diff --git a/src/main/java/groovy/beans/DefaultPropertyReader.java b/src/main/java/groovy/beans/DefaultPropertyReader.java
index d263fd6..f8a8403 100644
--- a/src/main/java/groovy/beans/DefaultPropertyReader.java
+++ b/src/main/java/groovy/beans/DefaultPropertyReader.java
@@ -23,6 +23,7 @@ import org.codehaus.groovy.runtime.InvokerHelper;
 public class DefaultPropertyReader implements PropertyReader {
     public static final PropertyReader INSTANCE = new DefaultPropertyReader();
 
+    @Override
     public Object read(Object owner, String propertyName) {
         return InvokerHelper.getPropertySafe(owner, propertyName);
     }
diff --git a/src/main/java/groovy/beans/DefaultPropertyWriter.java b/src/main/java/groovy/beans/DefaultPropertyWriter.java
index 7b30670..24483bd 100644
--- a/src/main/java/groovy/beans/DefaultPropertyWriter.java
+++ b/src/main/java/groovy/beans/DefaultPropertyWriter.java
@@ -23,6 +23,7 @@ import org.codehaus.groovy.runtime.InvokerHelper;
 public class DefaultPropertyWriter implements PropertyWriter {
     public static final PropertyWriter INSTANCE = new DefaultPropertyWriter();
 
+    @Override
     public void write(Object owner, String propertyName, Object value) {
         InvokerHelper.setProperty(owner, propertyName, value);
     }
diff --git a/src/main/java/groovy/beans/VetoableASTTransformation.java b/src/main/java/groovy/beans/VetoableASTTransformation.java
index b815bae..ea37877 100644
--- a/src/main/java/groovy/beans/VetoableASTTransformation.java
+++ b/src/main/java/groovy/beans/VetoableASTTransformation.java
@@ -97,6 +97,7 @@ public class VetoableASTTransformation extends BindableASTTransformation {
      * @param nodes   the AST nodes
      * @param source  the source unit for the nodes
      */
+    @Override
     public void visit(ASTNode[] nodes, SourceUnit source) {
         if (!(nodes[0] instanceof AnnotationNode) || !(nodes[1] instanceof AnnotatedNode)) {
             throw new RuntimeException("Internal error: wrong types: $node.class / $parent.class");
@@ -297,6 +298,7 @@ public class VetoableASTTransformation extends BindableASTTransformation {
      * @param setterName     the name of the setter
      * @param setterBlock    the statement representing the setter block
      */
+    @Override
     protected void createSetterMethod(ClassNode declaringClass, PropertyNode propertyNode, String setterName, Statement setterBlock) {
         ClassNode[] exceptions = {ClassHelper.make(PropertyVetoException.class)};
         MethodNode setter = new MethodNode(
diff --git a/src/main/java/groovy/grape/GrabAnnotationTransformation.java b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
index 089e125..677d3f3 100644
--- a/src/main/java/groovy/grape/GrabAnnotationTransformation.java
+++ b/src/main/java/groovy/grape/GrabAnnotationTransformation.java
@@ -151,14 +151,17 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
     Boolean disableChecksums;
     Map<String, String> systemProperties;
 
+    @Override
     public SourceUnit getSourceUnit() {
         return sourceUnit;
     }
 
+    @Override
     public void setCompilationUnit(final CompilationUnit compilationUnit) {
         this.compilationUnit = compilationUnit;
     }
 
+    @Override
     public void visit(ASTNode[] nodes, SourceUnit source) {
         sourceUnit = source;
         loader = null;
@@ -605,6 +608,7 @@ public class GrabAnnotationTransformation extends ClassCodeVisitorSupport implem
      *
      * @param node the AST node we are processing
      */
+    @Override
     public void visitAnnotations(AnnotatedNode node) {
         super.visitAnnotations(node);
         for (AnnotationNode an : node.getAnnotations()) {
diff --git a/src/main/java/groovy/inspect/Inspector.java b/src/main/java/groovy/inspect/Inspector.java
index 12fce8b..25b17f2 100644
--- a/src/main/java/groovy/inspect/Inspector.java
+++ b/src/main/java/groovy/inspect/Inspector.java
@@ -312,6 +312,7 @@ public class Inspector {
     public static class MemberComparator implements Comparator<Object>, Serializable {
         private static final long serialVersionUID = -7691851726606749541L;
 
+        @Override
         public int compare(Object a, Object b) {
             String[] aStr = (String[]) a;
             String[] bStr = (String[]) b;
diff --git a/src/main/java/groovy/io/GroovyPrintStream.java b/src/main/java/groovy/io/GroovyPrintStream.java
index d41bb32..cd6818f 100644
--- a/src/main/java/groovy/io/GroovyPrintStream.java
+++ b/src/main/java/groovy/io/GroovyPrintStream.java
@@ -109,6 +109,7 @@ public class GroovyPrintStream extends PrintStream {
      *
      * @param obj The <code>Object</code> to be printed
      */
+    @Override
     public void print(Object obj) {
         print(InvokerHelper.toString(obj));
     }
@@ -118,6 +119,7 @@ public class GroovyPrintStream extends PrintStream {
      *
      * @param obj The <code>Object</code> to be printed
      */
+    @Override
     public void println(Object obj) {
         println(InvokerHelper.toString(obj));
     }
diff --git a/src/main/java/groovy/io/GroovyPrintWriter.java b/src/main/java/groovy/io/GroovyPrintWriter.java
index 128af1c..a3fdb66 100644
--- a/src/main/java/groovy/io/GroovyPrintWriter.java
+++ b/src/main/java/groovy/io/GroovyPrintWriter.java
@@ -69,10 +69,12 @@ public class GroovyPrintWriter extends PrintWriter {
         super(filename, csn);
     }
 
+    @Override
     public void print(Object x) {
         write(InvokerHelper.toString(x));
     }
 
+    @Override
     public void println(Object x) {
         // JDK 1.6 has changed the implementation to do a
         // String.valueOf(x) rather than call print(x).
diff --git a/src/main/java/groovy/io/PlatformLineWriter.java b/src/main/java/groovy/io/PlatformLineWriter.java
index f4e5cfe..8bad14d 100644
--- a/src/main/java/groovy/io/PlatformLineWriter.java
+++ b/src/main/java/groovy/io/PlatformLineWriter.java
@@ -41,6 +41,7 @@ public class PlatformLineWriter extends Writer {
         writer = new BufferedWriter(out, sz);
     }
 
+    @Override
     public void write(char[] cbuf, int off, int len) throws IOException {
         for (; len > 0; len--) {
             char c = cbuf[off++];
@@ -52,10 +53,12 @@ public class PlatformLineWriter extends Writer {
         }
     }
 
+    @Override
     public void flush() throws IOException {
         writer.flush();
     }
 
+    @Override
     public void close() throws IOException {
         writer.close();
     }
diff --git a/src/main/java/groovy/lang/BenchmarkInterceptor.java b/src/main/java/groovy/lang/BenchmarkInterceptor.java
index e289bda..9e64a25 100644
--- a/src/main/java/groovy/lang/BenchmarkInterceptor.java
+++ b/src/main/java/groovy/lang/BenchmarkInterceptor.java
@@ -72,6 +72,7 @@ public class BenchmarkInterceptor implements Interceptor {
      * @return null
      * relays this result.
      */
+    @Override
     public Object beforeInvoke(Object object, String methodName, Object[] arguments) {
         if (!calls.containsKey(methodName)) calls.put(methodName, new LinkedList());
         ((List) calls.get(methodName)).add(System.currentTimeMillis());
@@ -86,6 +87,7 @@ public class BenchmarkInterceptor implements Interceptor {
      * @param result        result of the executed method call or result of beforeInvoke if method was not called
      * @return result
      */
+    @Override
     public Object afterInvoke(Object object, String methodName, Object[] arguments, Object result) {
         ((List) calls.get(methodName)).add(System.currentTimeMillis());
         return result;
@@ -95,6 +97,7 @@ public class BenchmarkInterceptor implements Interceptor {
      * The call should be invoked separately
      * @return true
      */
+    @Override
     public boolean doInvoke() {
         return true;
     }
diff --git a/src/main/java/groovy/lang/Binding.java b/src/main/java/groovy/lang/Binding.java
index 8cbd533..97e2fbe 100644
--- a/src/main/java/groovy/lang/Binding.java
+++ b/src/main/java/groovy/lang/Binding.java
@@ -107,6 +107,7 @@ public class Binding extends GroovyObjectSupport {
     /**
      * Overloaded to make variables appear as bean properties or via the subscript operator
      */
+    @Override
     public Object getProperty(String property) {
         /** @todo we should check if we have the property with the metaClass instead of try/catch  */
         try {
@@ -120,6 +121,7 @@ public class Binding extends GroovyObjectSupport {
     /**
      * Overloaded to make variables appear as bean properties or via the subscript operator
      */
+    @Override
     public void setProperty(String property, Object newValue) {
         /** @todo we should check if we have the property with the metaClass instead of try/catch  */
         try {
diff --git a/src/main/java/groovy/lang/Closure.java b/src/main/java/groovy/lang/Closure.java
index 6fe1eaf..1f55e01 100644
--- a/src/main/java/groovy/lang/Closure.java
+++ b/src/main/java/groovy/lang/Closure.java
@@ -267,6 +267,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         return thisObject;
     }
 
+    @Override
     public Object getProperty(final String property) {
         if ("delegate".equals(property)) {
             return getDelegate();
@@ -337,6 +338,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         }
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         if ("delegate".equals(property)) {
             setDelegate(newValue);
@@ -405,6 +407,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
      *
      * @return the value if applicable or null if there is no return statement in the closure
      */
+    @Override
     public V call() {
         final Object[] NOARGS = EMPTY_OBJECT_ARRAY;
         return call(NOARGS);
@@ -493,6 +496,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
     /* (non-Javadoc)
      * @see java.lang.Runnable#run()
      */
+    @Override
     public void run() {
         call();
     }
@@ -884,6 +888,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
     /* (non-Javadoc)
      * @see java.lang.Object#clone()
      */
+    @Override
     public Object clone() {
         try {
             return super.clone();
@@ -912,6 +917,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Writable#writeTo(java.io.Writer)
          */
+        @Override
         public Writer writeTo(Writer out) throws IOException {
             Closure.this.call(new Object[]{out});
 
@@ -921,6 +927,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.GroovyObject#invokeMethod(java.lang.String, java.lang.Object)
          */
+        @Override
         public Object invokeMethod(String method, Object arguments) {
             if ("clone".equals(method)) {
                 return clone();
@@ -937,6 +944,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.GroovyObject#getProperty(java.lang.String)
          */
+        @Override
         public Object getProperty(String property) {
             return Closure.this.getProperty(property);
         }
@@ -944,6 +952,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.GroovyObject#setProperty(java.lang.String, java.lang.Object)
          */
+        @Override
         public void setProperty(String property, Object newValue) {
             Closure.this.setProperty(property, newValue);
         }
@@ -951,6 +960,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#call()
          */
+        @Override
         public Object call() {
             return ((Closure) getOwner()).call();
         }
@@ -958,10 +968,12 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#call(java.lang.Object)
          */
+        @Override
         public Object call(Object arguments) {
             return ((Closure) getOwner()).call(arguments);
         }
 
+        @Override
         public Object call(Object... args) {
             return ((Closure) getOwner()).call(args);
         }
@@ -973,6 +985,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#getDelegate()
          */
+        @Override
         public Object getDelegate() {
             return Closure.this.getDelegate();
         }
@@ -980,6 +993,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#setDelegate(java.lang.Object)
          */
+        @Override
         public void setDelegate(Object delegate) {
             Closure.this.setDelegate(delegate);
         }
@@ -987,6 +1001,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#getParameterTypes()
          */
+        @Override
         public Class[] getParameterTypes() {
             return Closure.this.getParameterTypes();
         }
@@ -994,6 +1009,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#getParameterTypes()
          */
+        @Override
         public int getMaximumNumberOfParameters() {
             return Closure.this.getMaximumNumberOfParameters();
         }
@@ -1001,6 +1017,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see groovy.lang.Closure#asWritable()
          */
+        @Override
         public Closure asWritable() {
             return this;
         }
@@ -1008,6 +1025,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see java.lang.Runnable#run()
          */
+        @Override
         public void run() {
             Closure.this.run();
         }
@@ -1015,6 +1033,7 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
         /* (non-Javadoc)
          * @see java.lang.Object#clone()
          */
+        @Override
         public Object clone() {
             return ((Closure) Closure.this.clone()).asWritable();
         }
@@ -1048,14 +1067,17 @@ public abstract class Closure<V> extends GroovyObjectSupport implements Cloneabl
             return writer.toString();
         }
 
+        @Override
         public Closure curry(final Object... arguments) {
             return (new CurriedClosure(this, arguments)).asWritable();
         }
 
+        @Override
         public void setResolveStrategy(int resolveStrategy) {
             Closure.this.setResolveStrategy(resolveStrategy);
         }
 
+        @Override
         public int getResolveStrategy() {
             return Closure.this.getResolveStrategy();
         }
diff --git a/src/main/java/groovy/lang/DelegatingMetaClass.java b/src/main/java/groovy/lang/DelegatingMetaClass.java
index 2b130a0..82d8a29 100644
--- a/src/main/java/groovy/lang/DelegatingMetaClass.java
+++ b/src/main/java/groovy/lang/DelegatingMetaClass.java
@@ -35,6 +35,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         this(GroovySystem.getMetaClassRegistry().getMetaClass(theClass));
     }
 
+    @Override
     public boolean isModified() {
         return this.delegate instanceof MutableMetaClass && ((MutableMetaClass) this.delegate).isModified();
     }
@@ -42,6 +43,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
     * @see groovy.lang.MetaClass#addNewInstanceMethod(java.lang.reflect.Method)
     */
+    @Override
     public void addNewInstanceMethod(Method method) {
         if (delegate instanceof MutableMetaClass)
             ((MutableMetaClass) delegate).addNewInstanceMethod(method);
@@ -50,16 +52,19 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
     * @see groovy.lang.MetaClass#addNewStaticMethod(java.lang.reflect.Method)
     */
+    @Override
     public void addNewStaticMethod(Method method) {
         if (delegate instanceof MutableMetaClass)
             ((MutableMetaClass) delegate).addNewStaticMethod(method);
     }
 
+    @Override
     public void addMetaMethod(MetaMethod metaMethod) {
         if (delegate instanceof MutableMetaClass)
             ((MutableMetaClass) delegate).addMetaMethod(metaMethod);
     }
 
+    @Override
     public void addMetaBeanProperty(MetaBeanProperty metaBeanProperty) {
         if (delegate instanceof MutableMetaClass)
             ((MutableMetaClass) delegate).addMetaBeanProperty(metaBeanProperty);
@@ -68,6 +73,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
     * @see groovy.lang.MetaClass#initialize()
     */
+    @Override
     public void initialize() {
         delegate.initialize();
     }
@@ -75,6 +81,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#getAttribute(java.lang.Object, java.lang.String)
      */
+    @Override
     public Object getAttribute(Object object, String attribute) {
         return delegate.getAttribute(object, attribute);
     }
@@ -82,6 +89,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#getClassNode()
      */
+    @Override
     public ClassNode getClassNode() {
         return delegate.getClassNode();
     }
@@ -89,6 +97,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#getMetaMethods()
      */
+    @Override
     public List<MetaMethod> getMetaMethods() {
         return delegate.getMetaMethods();
     }
@@ -96,18 +105,22 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#getMethods()
      */
+    @Override
     public List<MetaMethod> getMethods() {
         return delegate.getMethods();
     }
 
+    @Override
     public List<MetaMethod> respondsTo(Object obj, String name, Object[] argTypes) {
         return delegate.respondsTo(obj, name, argTypes);
     }
 
+    @Override
     public List<MetaMethod> respondsTo(Object obj, String name) {
         return delegate.respondsTo(obj, name);
     }
 
+    @Override
     public MetaProperty hasProperty(Object obj, String name) {
         return delegate.hasProperty(obj, name);
     }
@@ -115,6 +128,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
     * @see groovy.lang.MetaClass#getProperties()
     */
+    @Override
     public List<MetaProperty> getProperties() {
         return delegate.getProperties();
     }
@@ -122,6 +136,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#getProperty(java.lang.Object, java.lang.String)
      */
+    @Override
     public Object getProperty(Object object, String property) {
         return delegate.getProperty(object, property);
     }
@@ -129,6 +144,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#invokeConstructor(java.lang.Object[])
      */
+    @Override
     public Object invokeConstructor(Object[] arguments) {
         return delegate.invokeConstructor(arguments);
     }
@@ -136,6 +152,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#invokeMethod(java.lang.Object, java.lang.String, java.lang.Object)
      */
+    @Override
     public Object invokeMethod(Object object, String methodName, Object arguments) {
         return delegate.invokeMethod(object, methodName, arguments);
     }
@@ -143,6 +160,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#invokeMethod(java.lang.Object, java.lang.String, java.lang.Object[])
      */
+    @Override
     public Object invokeMethod(Object object, String methodName, Object[] arguments) {
         return delegate.invokeMethod(object, methodName, arguments);
     }
@@ -150,6 +168,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#invokeStaticMethod(java.lang.Object, java.lang.String, java.lang.Object[])
      */
+    @Override
     public Object invokeStaticMethod(Object object, String methodName, Object[] arguments) {
         return delegate.invokeStaticMethod(object, methodName, arguments);
     }
@@ -157,6 +176,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#setAttribute(java.lang.Object, java.lang.String, java.lang.Object)
      */
+    @Override
     public void setAttribute(Object object, String attribute, Object newValue) {
         delegate.setAttribute(object, attribute, newValue);
     }
@@ -164,6 +184,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /* (non-Javadoc)
      * @see groovy.lang.MetaClass#setProperty(java.lang.Object, java.lang.String, java.lang.Object)
      */
+    @Override
     public void setProperty(Object object, String property, Object newValue) {
         delegate.setProperty(object, property, newValue);
     }
@@ -189,23 +210,28 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
     /**
      * @deprecated
      */
+    @Override
     @Deprecated
     public MetaMethod pickMethod(String methodName, Class[] arguments) {
         return delegate.pickMethod(methodName, arguments);
     }
 
+    @Override
     public Object getAttribute(Class sender, Object receiver, String messageName, boolean useSuper) {
         return this.delegate.getAttribute(sender, receiver, messageName, useSuper);
     }
 
+    @Override
     public Object getProperty(Class sender, Object receiver, String messageName, boolean useSuper, boolean fromInsideClass) {
         return this.delegate.getProperty(sender, receiver, messageName, useSuper, fromInsideClass);
     }
 
+    @Override
     public MetaProperty getMetaProperty(String name) {
         return this.delegate.getMetaProperty(name);
     }
 
+    @Override
     public MetaMethod getStaticMetaMethod(String name, Object[] args) {
         return this.delegate.getStaticMetaMethod(name, args);
     }
@@ -214,22 +240,27 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         return this.delegate.getStaticMetaMethod(name, argTypes);
     }
 
+    @Override
     public MetaMethod getMetaMethod(String name, Object[] args) {
         return this.delegate.getMetaMethod(name, args);
     }
 
+    @Override
     public Class getTheClass() {
         return this.delegate.getTheClass();
     }
 
+    @Override
     public Object invokeMethod(Class sender, Object receiver, String methodName, Object[] arguments, boolean isCallToSuper, boolean fromInsideClass) {
         return this.delegate.invokeMethod(sender, receiver, methodName, arguments, isCallToSuper, fromInsideClass);
     }
 
+    @Override
     public Object invokeMissingMethod(Object instance, String methodName, Object[] arguments) {
         return this.delegate.invokeMissingMethod(instance, methodName, arguments);
     }
 
+    @Override
     public Object invokeMissingProperty(Object instance, String propertyName, Object optionalValue, boolean isGetter) {
         return this.delegate.invokeMissingProperty(instance, propertyName, optionalValue, isGetter);
     }
@@ -238,14 +269,17 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         return GroovyObject.class.isAssignableFrom(this.delegate.getTheClass());
     }
 
+    @Override
     public void setAttribute(Class sender, Object receiver, String messageName, Object messageValue, boolean useSuper, boolean fromInsideClass) {
         this.delegate.setAttribute(sender, receiver, messageName, messageValue, useSuper, fromInsideClass);
     }
 
+    @Override
     public void setProperty(Class sender, Object receiver, String messageName, Object messageValue, boolean useSuper, boolean fromInsideClass) {
         this.delegate.setProperty(sender, receiver, messageName, messageValue, useSuper, fromInsideClass);
     }
 
+    @Override
     public int selectConstructorAndTransformArguments(int numberOfConstructors, Object[] arguments) {
         return this.delegate.selectConstructorAndTransformArguments(numberOfConstructors, arguments);
     }
@@ -258,6 +292,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         return this.delegate;
     }
 
+    @Override
     public Object invokeMethod(String name, Object args) {
         try {
             return getMetaClass().invokeMethod(this, name, args);
@@ -270,6 +305,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         }
     }
 
+    @Override
     public Object getProperty(String property) {
         try {
             return getMetaClass().getProperty(this, property);
@@ -282,6 +318,7 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         }
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         try {
             getMetaClass().setProperty(this, property, newValue);
@@ -294,10 +331,12 @@ public class DelegatingMetaClass implements MetaClass, MutableMetaClass, GroovyO
         }
     }
 
+    @Override
     public MetaClass getMetaClass() {
         return InvokerHelper.getMetaClass(getClass());
     }
 
+    @Override
     public void setMetaClass(MetaClass metaClass) {
         throw new UnsupportedOperationException();
     }
diff --git a/src/main/java/groovy/lang/ExpandoMetaClass.java b/src/main/java/groovy/lang/ExpandoMetaClass.java
index 558531e..221bd53 100644
--- a/src/main/java/groovy/lang/ExpandoMetaClass.java
+++ b/src/main/java/groovy/lang/ExpandoMetaClass.java
@@ -348,6 +348,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         this(theClass, register, allowChangesAfterInit, null);
     }
 
+    @Override
     public MetaMethod findMixinMethod(String methodName, Class[] arguments) {
         for (MixinInMetaClass mixin : mixinClasses) {
             final CachedClass mixinClass = mixin.getMixinClass();
@@ -390,26 +391,32 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         return null;
     }
 
+    @Override
     protected void onInvokeMethodFoundInHierarchy(MetaMethod method) {
         this.invokeMethodMethod = method;
     }
 
+    @Override
     protected void onSuperMethodFoundInHierarchy(MetaMethod method) {
         addSuperMethodIfNotOverridden(method);
     }
 
+    @Override
     protected void onSuperPropertyFoundInHierarchy(MetaBeanProperty property) {
         addMetaBeanProperty(property);
     }
 
+    @Override
     protected void onSetPropertyFoundInHierarchy(MetaMethod method) {
         this.setPropertyMethod = method;
     }
 
+    @Override
     protected void onGetPropertyFoundInHierarchy(MetaMethod method) {
         this.getPropertyMethod = method;
     }
 
+    @Override
     public boolean isModified() {
         return this.modified;
     }
@@ -519,6 +526,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
 
     private void addSuperMethodIfNotOverridden(final MetaMethod metaMethodFromSuper) {
         performOperationOnMetaClass(new Callable() {
+            @Override
             public void call() {
 
                 MetaMethod existing = null;
@@ -652,6 +660,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
            * @see groovy.lang.GroovyObjectSupport#getProperty(java.lang.String)
            */
 
+        @Override
         public Object getProperty(String property) {
             this.propertyName = property;
             return this;
@@ -660,6 +669,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
            * @see groovy.lang.GroovyObjectSupport#setProperty(java.lang.String, java.lang.Object)
            */
 
+        @Override
         public void setProperty(String property, Object newValue) {
             this.propertyName = property;
             registerIfClosure(newValue, true);
@@ -670,6 +680,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
       * @see groovy.lang.MetaClassImpl#invokeConstructor(java.lang.Object[])
       */
 
+    @Override
     public Object invokeConstructor(Object[] arguments) {
 
         // TODO This is the only area where this MetaClass needs to do some interception because Groovy's current
@@ -709,6 +720,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
       * @see groovy.lang.GroovyObject#getMetaClass()
       */
 
+    @Override
     public MetaClass getMetaClass() {
         return myMetaClass;
     }
@@ -717,6 +729,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
       * @see groovy.lang.GroovyObject#getProperty(java.lang.String)
       */
 
+    @Override
     public Object getProperty(String property) {
         if (isValidExpandoProperty(property)) {
             if (property.equals(STATIC_QUALIFIER)) {
@@ -742,6 +755,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
       * @see groovy.lang.GroovyObject#invokeMethod(java.lang.String, java.lang.Object)
       */
 
+    @Override
     public Object invokeMethod(String name, Object args) {
         final Object[] argsArr = args instanceof Object[] ? (Object[]) args : new Object[]{args};
         MetaMethod metaMethod = myMetaClass.getMetaMethod(name, argsArr);
@@ -774,6 +788,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
       * @see groovy.lang.GroovyObject#setMetaClass(groovy.lang.MetaClass)
       */
 
+    @Override
     public void setMetaClass(MetaClass metaClass) {
         this.myMetaClass = metaClass;
     }
@@ -782,6 +797,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
       * @see groovy.lang.GroovyObject#setProperty(java.lang.String, java.lang.Object)
       */
 
+    @Override
     public void setProperty(String property, Object newValue) {
         if (newValue instanceof Closure) {
             if (property.equals(CONSTRUCTOR)) {
@@ -831,6 +847,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         }
     }
     
+    @Override
     protected void checkInitalised() {
         try {
             readLock.lock();
@@ -917,6 +934,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      * @return A list of MetaMethods
      * @see MetaObjectProtocol#getMethods()
      */
+    @Override
     public List<MetaMethod> getMethods() {
         List<MetaMethod> methodList = new ArrayList<MetaMethod>();
         methodList.addAll(this.expandoMethods.values());
@@ -924,6 +942,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         return methodList;
     }
 
+    @Override
     public List<MetaProperty> getProperties() {
         List<MetaProperty> propertyList = new ArrayList<MetaProperty>(super.getProperties());
         return propertyList;
@@ -1040,6 +1059,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         });
     }
 
+    @Override
     protected Object getSubclassMetaMethods(String methodName) {
         if (!isModified())
             return null;
@@ -1112,6 +1132,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      *
      * @see groovy.lang.MetaClassImpl#invokeMethod(Class, Object, String, Object[], boolean, boolean)
      */
+    @Override
     public Object invokeMethod(Class sender, Object object, String methodName, Object[] originalArguments, boolean isCallToSuper, boolean fromInsideClass) {
         if (invokeMethodMethod != null) {
             MetaClassHelper.unwrap(originalArguments);
@@ -1125,6 +1146,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      *
      * @see MetaClassImpl#invokeStaticMethod(Object, String, Object[])
      */
+    @Override
     public Object invokeStaticMethod(Object object, String methodName, Object[] arguments) {
         if (invokeStaticMethodMethod != null) {
             MetaClassHelper.unwrap(arguments);
@@ -1138,6 +1160,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      *
      * @see MetaClassImpl#getProperty(Class, Object, String, boolean, boolean)
      */
+    @Override
     public Object getProperty(Class sender, Object object, String name, boolean useSuper, boolean fromInsideClass) {
         if (hasOverrideGetProperty(name) && getJavaClass().isInstance(object)) {
             return getPropertyMethod.invoke(object, new Object[]{name});
@@ -1155,6 +1178,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      *
      * @see MetaClassImpl#getProperty(Object, String)
      */
+    @Override
     public Object getProperty(Object object, String name) {
         if (hasOverrideGetProperty(name) && getJavaClass().isInstance(object)) {
             return getPropertyMethod.invoke(object, new Object[]{name});
@@ -1172,6 +1196,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      * @see MetaClassImpl#setProperty(Class, Object, String, Object, boolean, boolean)
      */
 
+    @Override
     public void setProperty(Class sender, Object object, String name, Object newValue, boolean useSuper, boolean fromInsideClass) {
         if (setPropertyMethod != null && !name.equals(META_CLASS_PROPERTY) && getJavaClass().isInstance(object)) {
             setPropertyMethod.invoke(object, new Object[]{name, newValue});
@@ -1186,6 +1211,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
      * @param name The name of the MetaProperty
      * @return The MetaProperty or null if it doesn't exist
      */
+    @Override
     public MetaProperty getMetaProperty(String name) {
         MetaProperty mp = this.expandoProperties.get(name);
         if (mp != null) return mp;
@@ -1291,6 +1317,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         return false;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, Object receiver, Object[] args) {
         if (invokeMethodMethod != null)
             return new PojoMetaClassSite(site, this);
@@ -1298,6 +1325,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         return super.createPojoCallSite(site, receiver, args);
     }
 
+    @Override
     public CallSite createStaticSite(CallSite site, Object[] args) {
         if (invokeStaticMethodMethod != null)
             return new StaticMetaClassSite(site, this);
@@ -1305,8 +1333,10 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         return super.createStaticSite(site, args);
     }
 
+    @Override
     public boolean hasCustomStaticInvokeMethod() {return invokeStaticMethodMethod!=null; }
 
+    @Override
     public CallSite createPogoCallSite(CallSite site, Object[] args) {
         if (invokeMethodMethod != null)
             return new PogoMetaClassSite(site, this);
@@ -1327,6 +1357,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
         return super.retrieveConstructor(args);
     }
 
+    @Override
     public CallSite createConstructorSite(CallSite site, Object[] args) {
         Class[] params = MetaClassHelper.convertToTypeArray(args);
         MetaMethod method = pickMethod(GROOVY_CONSTRUCTOR, params);
@@ -1346,6 +1377,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
             this.klazz = klazz;
         }
 
+        @Override
         public Object invokeMethod(String name, Object obj) {
             if (obj instanceof Object[]) {
                 Object[] args = (Object[]) obj;
@@ -1381,6 +1413,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
             closure.call((Object)null);
         }
 
+        @Override
         public Object invokeMethod(String name, Object obj) {
             try {
                 return getMetaClass().invokeMethod(this, name, obj);
@@ -1410,10 +1443,12 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
             }
         }
 
+        @Override
         public void setProperty(String property, Object newValue) {
             ExpandoMetaClass.this.setProperty(property, newValue);
         }
 
+        @Override
         public Object getProperty(String property) {
             if (STATIC_QUALIFIER.equals(property))
                 return new StaticDefiningClosure();
@@ -1430,6 +1465,7 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
             super(STATIC_QUALIFIER, true);
         }
 
+        @Override
         public Object invokeMethod(String name, Object obj) {
             if (obj instanceof Object[]) {
                 final Object[] args = (Object[]) obj;
@@ -1458,10 +1494,12 @@ public class ExpandoMetaClass extends MetaClassImpl implements GroovyObject {
                     {
                         final MetaClass ownMetaClass = InvokerHelper.getMetaClass(object.getClass());
                         setMetaClass(new OwnedMetaClass(ownMetaClass) {
+                            @Override
                             protected Object getOwner() {
                                 return object;
                             }
 
+                            @Override
                             protected MetaClass getOwnerMetaClass(Object owner) {
                                 return getAdaptee();
                             }
diff --git a/src/main/java/groovy/lang/ExpandoMetaClassCreationHandle.java b/src/main/java/groovy/lang/ExpandoMetaClassCreationHandle.java
index e967699..bb901cd 100644
--- a/src/main/java/groovy/lang/ExpandoMetaClassCreationHandle.java
+++ b/src/main/java/groovy/lang/ExpandoMetaClassCreationHandle.java
@@ -42,6 +42,7 @@ public class ExpandoMetaClassCreationHandle extends MetaClassCreationHandle {
     /* (non-Javadoc)
      * @see groovy.lang.MetaClassRegistry.MetaClassCreationHandle#create(java.lang.Class, groovy.lang.MetaClassRegistry)
      */
+    @Override
     protected MetaClass createNormalMetaClass(Class theClass, MetaClassRegistry registry) {
         if(theClass != ExpandoMetaClass.class) {
             return new ExpandoMetaClass(theClass, true, true);
diff --git a/src/main/java/groovy/lang/GroovyClassLoader.java b/src/main/java/groovy/lang/GroovyClassLoader.java
index e5c1649..89ccf24 100644
--- a/src/main/java/groovy/lang/GroovyClassLoader.java
+++ b/src/main/java/groovy/lang/GroovyClassLoader.java
@@ -109,6 +109,7 @@ public class GroovyClassLoader extends URLClassLoader {
     private static int scriptNameCounter = 1000000;
 
     private GroovyResourceLoader resourceLoader = new GroovyResourceLoader() {
+        @Override
         public URL loadGroovySource(final String filename) throws MalformedURLException {
             return AccessController.doPrivileged((PrivilegedAction<URL>) () -> {
                 for (String extension : config.getScriptExtensions()) {
@@ -413,6 +414,7 @@ public class GroovyClassLoader extends URLClassLoader {
         return ret;
     }
 
+    @Override
     protected PermissionCollection getPermissions(CodeSource codeSource) {
         PermissionCollection perms;
         try {
@@ -424,6 +426,7 @@ public class GroovyClassLoader extends URLClassLoader {
             }
 
             ProtectionDomain myDomain = AccessController.doPrivileged(new PrivilegedAction<ProtectionDomain>() {
+                @Override
                 public ProtectionDomain run() {
                     return getClass().getProtectionDomain();
                 }
@@ -689,6 +692,7 @@ public class GroovyClassLoader extends URLClassLoader {
             return createClass(code, classNode);
         }
 
+        @Override
         public void call(ClassVisitor classWriter, ClassNode classNode) {
             onClassNode((ClassWriter) classWriter, classNode);
         }
@@ -761,6 +765,7 @@ public class GroovyClassLoader extends URLClassLoader {
      *
      * @param url the new classpath element
      */
+    @Override
     public void addURL(URL url) {
         super.addURL(url);
     }
@@ -947,6 +952,7 @@ public class GroovyClassLoader extends URLClassLoader {
      * @throws ClassNotFoundException     if the class was not found
      * @see java.lang.ClassLoader#loadClass(java.lang.String, boolean)
      */
+    @Override
     protected Class loadClass(final String name, boolean resolve) throws ClassNotFoundException {
         return loadClass(name, true, true, resolve);
     }
diff --git a/src/main/java/groovy/lang/GroovyRuntimeException.java b/src/main/java/groovy/lang/GroovyRuntimeException.java
index af62bb6..1cac6fc 100644
--- a/src/main/java/groovy/lang/GroovyRuntimeException.java
+++ b/src/main/java/groovy/lang/GroovyRuntimeException.java
@@ -59,6 +59,7 @@ public class GroovyRuntimeException extends RuntimeException {
         return module;
     }
 
+    @Override
     public String getMessage() {
         String messageWithoutLocationText = getMessageWithoutLocationText();
         String locationText = getLocationText();
diff --git a/src/main/java/groovy/lang/GroovyShell.java b/src/main/java/groovy/lang/GroovyShell.java
index bb47274..24c368c 100644
--- a/src/main/java/groovy/lang/GroovyShell.java
+++ b/src/main/java/groovy/lang/GroovyShell.java
@@ -128,6 +128,7 @@ public class GroovyShell extends GroovyObjectSupport {
         return loader;
     }
 
+    @Override
     public Object getProperty(String property) {
         Object answer = getVariable(property);
         if (answer == null) {
@@ -136,6 +137,7 @@ public class GroovyShell extends GroovyObjectSupport {
         return answer;
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         setVariable(property, newValue);
         try {
@@ -192,6 +194,7 @@ public class GroovyShell extends GroovyObjectSupport {
                 classLoader = loader;
             }
 
+            @Override
             public Object run() {
                 thread.setContextClassLoader(classLoader);
                 return null;
diff --git a/src/main/java/groovy/lang/ListWithDefault.java b/src/main/java/groovy/lang/ListWithDefault.java
index b0e2ca2..44afeb8 100644
--- a/src/main/java/groovy/lang/ListWithDefault.java
+++ b/src/main/java/groovy/lang/ListWithDefault.java
@@ -64,58 +64,72 @@ public final class ListWithDefault<T> implements List<T> {
         return new ListWithDefault<T>(new ArrayList<T>(items), lazyDefaultValues, (Closure) initClosure.clone());
     }
 
+    @Override
     public int size() {
         return delegate.size();
     }
 
+    @Override
     public boolean isEmpty() {
         return delegate.isEmpty();
     }
 
+    @Override
     public boolean contains(Object o) {
         return delegate.contains(o);
     }
 
+    @Override
     public Iterator<T> iterator() {
         return delegate.iterator();
     }
 
+    @Override
     public Object[] toArray() {
         return delegate.toArray();
     }
 
+    @Override
     public <T> T[] toArray(T[] ts) {
         return delegate.toArray(ts);
     }
 
+    @Override
     public boolean add(T t) {
         return delegate.add(t);
     }
 
+    @Override
     public boolean remove(Object o) {
         return delegate.remove(o);
     }
 
+    @Override
     public boolean containsAll(Collection<?> objects) {
         return delegate.containsAll(objects);
     }
 
+    @Override
     public boolean addAll(Collection<? extends T> ts) {
         return delegate.addAll(ts);
     }
 
+    @Override
     public boolean addAll(int i, Collection<? extends T> ts) {
         return delegate.addAll(i, ts);
     }
 
+    @Override
     public boolean removeAll(Collection<?> objects) {
         return delegate.removeAll(objects);
     }
 
+    @Override
     public boolean retainAll(Collection<?> objects) {
         return delegate.retainAll(objects);
     }
 
+    @Override
     public void clear() {
         delegate.clear();
     }
@@ -151,6 +165,7 @@ public final class ListWithDefault<T> implements List<T> {
      * @param index an index (might be greater or equal to {@code size()}, or smaller than 0)
      * @return the value at the given {@code index} or the default value
      */
+    @Override
     public T get(int index) {
 
         final int size = size();
@@ -204,30 +219,37 @@ public final class ListWithDefault<T> implements List<T> {
         return index;
     }
 
+    @Override
     public T set(int i, T t) {
         return delegate.set(i, t);
     }
 
+    @Override
     public void add(int i, T t) {
         delegate.add(i, t);
     }
 
+    @Override
     public T remove(int i) {
         return delegate.remove(i);
     }
 
+    @Override
     public int indexOf(Object o) {
         return delegate.indexOf(o);
     }
 
+    @Override
     public int lastIndexOf(Object o) {
         return delegate.lastIndexOf(o);
     }
 
+    @Override
     public ListIterator<T> listIterator() {
         return delegate.listIterator();
     }
 
+    @Override
     public ListIterator<T> listIterator(int i) {
         return delegate.listIterator(i);
     }
@@ -250,6 +272,7 @@ public final class ListWithDefault<T> implements List<T> {
      * @param toIndex   upper endpoint of the subList (exclusive)
      * @return a view of a specified range within this list, keeping all lazy list settings
      */
+    @Override
     public ListWithDefault<T> subList(int fromIndex, int toIndex) {
         return new ListWithDefault<T>(delegate.subList(fromIndex, toIndex), lazyDefaultValues, (Closure) initClosure.clone());
     }
diff --git a/src/main/java/groovy/lang/MapWithDefault.java b/src/main/java/groovy/lang/MapWithDefault.java
index 8aa1b3e..ecd135d 100644
--- a/src/main/java/groovy/lang/MapWithDefault.java
+++ b/src/main/java/groovy/lang/MapWithDefault.java
@@ -41,22 +41,27 @@ public final class MapWithDefault<K, V> implements Map<K, V> {
         return new MapWithDefault<K, V>(m, initClosure);
     }
 
+    @Override
     public int size() {
         return delegate.size();
     }
 
+    @Override
     public boolean isEmpty() {
         return delegate.isEmpty();
     }
 
+    @Override
     public boolean containsKey(Object key) {
         return delegate.containsKey(key);
     }
 
+    @Override
     public boolean containsValue(Object value) {
         return delegate.containsValue(value);
     }
 
+    @Override
     public V get(Object key) {
         if (!delegate.containsKey(key)) {
             delegate.put((K)key, (V)initClosure.call(new Object[]{key}));
@@ -64,30 +69,37 @@ public final class MapWithDefault<K, V> implements Map<K, V> {
         return delegate.get(key);
     }
 
+    @Override
     public V put(K key, V value) {
         return delegate.put(key, value);
     }
 
+    @Override
     public V remove(Object key) {
         return delegate.remove(key);
     }
 
+    @Override
     public void putAll(Map<? extends K, ? extends V> m) {
         delegate.putAll(m);
     }
 
+    @Override
     public void clear() {
         delegate.clear();
     }
 
+    @Override
     public Set<K> keySet() {
         return delegate.keySet();
     }
 
+    @Override
     public Collection<V> values() {
         return delegate.values();
     }
 
+    @Override
     public Set<Map.Entry<K, V>> entrySet() {
         return delegate.entrySet();
     }
diff --git a/src/main/java/groovy/lang/MetaArrayLengthProperty.java b/src/main/java/groovy/lang/MetaArrayLengthProperty.java
index e7de412..1bb8f5b 100644
--- a/src/main/java/groovy/lang/MetaArrayLengthProperty.java
+++ b/src/main/java/groovy/lang/MetaArrayLengthProperty.java
@@ -37,6 +37,7 @@ public class MetaArrayLengthProperty extends MetaProperty {
      * @return the length of the array object
      * @throws IllegalArgumentException if object is not an array
      */
+    @Override
     public Object getProperty(Object object) {
         return java.lang.reflect.Array.getLength(object);
     }
@@ -48,6 +49,7 @@ public class MetaArrayLengthProperty extends MetaProperty {
      * @param newValue the new value of the property
      * @throws RuntimeException if the property could not be set
      */
+    @Override
     public void setProperty(Object object, Object newValue) {
         throw new ReadOnlyPropertyException("length", object.getClass());
     }
diff --git a/src/main/java/groovy/lang/MetaBeanProperty.java b/src/main/java/groovy/lang/MetaBeanProperty.java
index 89328af..8346a5e 100644
--- a/src/main/java/groovy/lang/MetaBeanProperty.java
+++ b/src/main/java/groovy/lang/MetaBeanProperty.java
@@ -49,6 +49,7 @@ public class MetaBeanProperty extends MetaProperty {
      * @return the property of the given object
      * @throws RuntimeException if the property could not be evaluated
      */
+    @Override
     public Object getProperty(Object object) {
         MetaMethod getter = getGetter();
         if (getter == null) {
@@ -66,6 +67,7 @@ public class MetaBeanProperty extends MetaProperty {
      * @param newValue the new value of the property
      * @throws RuntimeException if the property could not be set
      */
+    @Override
     public void setProperty(Object object, Object newValue) {
         MetaMethod setter = getSetter();
         if (setter == null) {
@@ -120,6 +122,7 @@ public class MetaBeanProperty extends MetaProperty {
      *
      * @return the visibility modifier of the getter, the setter, or both depending on which exist
      */
+    @Override
     public int getModifiers() {
         MetaMethod getter = getGetter();
         MetaMethod setter = getSetter();
diff --git a/src/main/java/groovy/lang/MetaClass.java b/src/main/java/groovy/lang/MetaClass.java
index 09bb3cd..d913b20 100644
--- a/src/main/java/groovy/lang/MetaClass.java
+++ b/src/main/java/groovy/lang/MetaClass.java
@@ -153,14 +153,16 @@ public interface MetaClass extends MetaObjectProtocol {
      *
      * @return A list of MetaProperty instances
      */
-     List<MetaProperty> getProperties();
+    @Override
+    List<MetaProperty> getProperties();
 
     /**
      * Retrieves a list of MetaMethods held by the class. This list does not include MetaMethods added by groovy.lang.ExpandoMetaClass.
      *
      * @return A list of MetaMethods
      */
-     List<MetaMethod> getMethods();
+    @Override
+    List<MetaMethod> getMethods();
      
      /**
       * Obtains a reference to the original AST for the MetaClass if it is available at runtime
diff --git a/src/main/java/groovy/lang/MetaClassImpl.java b/src/main/java/groovy/lang/MetaClassImpl.java
index 676693f..1b99ad5 100644
--- a/src/main/java/groovy/lang/MetaClassImpl.java
+++ b/src/main/java/groovy/lang/MetaClassImpl.java
@@ -332,6 +332,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      *
      * @return The class contained by this metaclass
      */
+    @Override
     public Class getTheClass() {
         return this.theClass;
     }
@@ -1029,6 +1030,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @return The return value of the method
      * @see MetaClass#invokeMethod(Class, Object, String, Object[], boolean, boolean)
      */
+    @Override
     public Object invokeMethod(Object object, String methodName, Object[] originalArguments) {
         return invokeMethod(theClass, object, methodName, originalArguments, false, false);
     }
@@ -1116,6 +1118,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @return The return value of the method
      * @see MetaClass#invokeMethod(Class, Object, String, Object[], boolean, boolean)
      */
+    @Override
     public Object invokeMethod(Class sender, Object object, String methodName, Object[] originalArguments, boolean isCallToSuper, boolean fromInsideClass) {
         checkInitalised();
         if (object == null) {
@@ -1299,6 +1302,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         }
 
         return new TransformMetaMethod(method) {
+            @Override
             public Object invoke(Object object, Object[] arguments) {
                 Object firstArgument = arguments[0];
                 List list = (List) firstArgument;
@@ -1494,6 +1498,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         return method;
     }
 
+    @Override
     public Object invokeStaticMethod(Object object, String methodName, Object[] arguments) {
         checkInitalised();
 
@@ -1599,10 +1604,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         }
     }
 
+    @Override
     public Object invokeConstructor(Object[] arguments) {
         return invokeConstructor(theClass, arguments);
     }
 
+    @Override
     public int selectConstructorAndTransformArguments(int numberOfConstructors, Object[] arguments) {
         if (numberOfConstructors == -1) {
             return selectConstructorAndTransformArguments1(arguments);
@@ -1852,6 +1859,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
     /**
      * @return the given property's value on the object
      */
+    @Override
     public Object getProperty(Class sender, Object object, String name, boolean useSuper, boolean fromInsideClass) {
 
         //----------------------------------------------------------------------
@@ -1963,10 +1971,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             return new MetaProperty(name, Object.class) {
                 final MetaClass mc = registry.getMetaClass((Class) object);
 
+                @Override
                 public Object getProperty(Object object) {
                     return mc.getProperty(sender, object, name, useSuper, false);
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
@@ -1980,10 +1990,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         //----------------------------------------------------------------------
         if (!isStatic && this.isMap) {
             return new MetaProperty(name, Object.class) {
+                @Override
                 public Object getProperty(Object object) {
                     return ((Map) object).get(name);
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
@@ -2043,11 +2055,13 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         /* todo these special cases should be special MetaClasses maybe */
         if (theClass != Class.class && object instanceof Class) {
             return new MetaProperty(name, Object.class) {
+                @Override
                 public Object getProperty(Object object) {
                     MetaClass mc = registry.getMetaClass(Class.class);
                     return mc.getProperty(Class.class, object, name, useSuper, false);
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
@@ -2055,10 +2069,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         }
         if (object instanceof Collection) {
             return new MetaProperty(name, Object.class) {
+                @Override
                 public Object getProperty(Object object) {
                     return DefaultGroovyMethods.getAt((Collection) object, name);
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
@@ -2066,10 +2082,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         }
         if (object instanceof Object[]) {
             return new MetaProperty(name, Object.class) {
+                @Override
                 public Object getProperty(Object object) {
                     return DefaultGroovyMethods.getAt(Arrays.asList((Object[]) object), name);
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
@@ -2079,10 +2097,12 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         if (addListenerMethod != null) {
             //TODO: one day we could try return the previously registered Closure listener for easy removal
             return new MetaProperty(name, Object.class) {
+                @Override
                 public Object getProperty(Object object) {
                     return null;
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
@@ -2094,20 +2114,24 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
         //----------------------------------------------------------------------
         if (isStatic || object instanceof Class) {
             return new MetaProperty(name, Object.class) {
+                @Override
                 public Object getProperty(Object object) {
                     return invokeStaticMissingProperty(object, name, null, true);
                 }
 
+                @Override
                 public void setProperty(Object object, Object newValue) {
                     throw new UnsupportedOperationException();
                 }
             };
         }
         return new MetaProperty(name, Object.class) {
+            @Override
             public Object getProperty(Object object) {
                 return invokeMissingProperty(object, name, null, true);
             }
 
+            @Override
             public void setProperty(Object object, Object newValue) {
                 throw new UnsupportedOperationException();
             }
@@ -2212,6 +2236,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      *
      * @return a list of MetaProperty objects
      */
+    @Override
     public List<MetaProperty> getProperties() {
         checkInitalised();
         LinkedHashMap<String, MetaProperty> propertyMap = classPropertyIndex.get(theCachedClass);
@@ -2683,6 +2708,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      *
      * @param mp The MetaBeanProperty
      */
+    @Override
     public void addMetaBeanProperty(MetaBeanProperty mp) {
         MetaProperty staticProperty = establishStaticMetaProperty(mp);
         if (staticProperty != null) {
@@ -2723,6 +2749,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param useSuper        Whether the call is to a super class property
      * @param fromInsideClass Whether the call was invoked from the inside or the outside of the class.
      */
+    @Override
     public void setProperty(Class sender, Object object, String name, Object newValue, boolean useSuper, boolean fromInsideClass) {
         checkInitalised();
 
@@ -2928,6 +2955,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param useSuper    Whether to look-up on the super class or not
      * @return The attribute value
      */
+    @Override
     public Object getAttribute(final Class sender, final Object object, final String attribute, final boolean useSuper) {
         return getAttribute(sender, object, attribute, useSuper, false);
     }
@@ -2983,6 +3011,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param useSuper        Whether the call is to a super class property
      * @param fromInsideClass Whether the call was invoked from the inside or the outside of the class
      */
+    @Override
     public void setAttribute(final Class sender, final Object object, final String attribute, final Object newValue, final boolean useSuper, final boolean fromInsideClass) {
         checkInitalised();
 
@@ -3014,6 +3043,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      *
      * @return The original AST or null if it cannot be returned
      */
+    @Override
     public ClassNode getClassNode() {
         if (classNode == null && GroovyObject.class.isAssignableFrom(theClass)) {
             // let's try load it from the classpath
@@ -3077,6 +3107,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param method the MetaMethod
      * @see #initialize()
      */
+    @Override
     public void addMetaMethod(MetaMethod method) {
         if (isInitialized()) {
             throw new RuntimeException("Already initialized, cannot add new method: " + method);
@@ -3413,6 +3444,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * Reflector. It is suggested to synchronize this
      * method.
      */
+    @Override
     public synchronized void initialize() {
         if (!isInitialized()) {
             fillMethodIndex();
@@ -3485,6 +3517,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      *
      * @return A list of MetaMethods
      */
+    @Override
     public List<MetaMethod> getMethods() {
         return allMethods;
     }
@@ -3494,6 +3527,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      *
      * @return A list of MetaMethods
      */
+    @Override
     public List<MetaMethod> getMetaMethods() {
         return new ArrayList<>(newGroovyMethodsSet);
     }
@@ -3849,6 +3883,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param property The name of the property
      * @return The properties value
      */
+    @Override
     public Object getProperty(Object object, String property) {
         return getProperty(theClass, object, property, false, false);
     }
@@ -3860,6 +3895,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param property The name of the property
      * @param newValue The new value
      */
+    @Override
     public void setProperty(Object object, String property, Object newValue) {
         setProperty(theClass, object, property, newValue, false, false);
     }
@@ -3871,6 +3907,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param attribute The name of the attribute
      * @return The attribute value
      */
+    @Override
     public Object getAttribute(final Object object, final String attribute) {
         return getAttribute(theClass, object, attribute, false, false);
     }
@@ -3882,6 +3919,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @param attribute The name of the attribute
      * @param newValue  The new value of the attribute
      */
+    @Override
     public void setAttribute(final Object object, final String attribute, final Object newValue) {
         setAttribute(theClass, object, attribute, newValue, false, false);
     }
@@ -3899,6 +3937,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
      * @return a matching MetaMethod or null
      * @throws GroovyRuntimeException if there is more than one matching method
      */
+    @Override
     public MetaMethod pickMethod(String methodName, Class[] arguments) {
         return getMethodWithoutCaching(theClass, methodName, arguments, false);
     }
@@ -3964,6 +4003,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             return (MethodIndex) SingleKeyHashMap.copy(new MethodIndex(false), this, METHOD_INDEX_COPIER);
         }
 
+        @Override
         protected Object clone() throws CloneNotSupportedException {
             return super.clone();
         }
@@ -4008,18 +4048,22 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
 
     private static class DummyMetaMethod extends MetaMethod {
 
+        @Override
         public int getModifiers() {
             return 0;
         }
 
+        @Override
         public String getName() {
             return null;
         }
 
+        @Override
         public Class getReturnType() {
             return null;
         }
 
+        @Override
         public CachedClass getDeclaringClass() {
             return null;
         }
@@ -4028,6 +4072,7 @@ public class MetaClassImpl implements MetaClass, MutableMetaClass {
             return null;
         }
 
+        @Override
         public Object invoke(Object object, Object[] arguments) {
             return null;
         }
diff --git a/src/main/java/groovy/lang/MetaExpandoProperty.java b/src/main/java/groovy/lang/MetaExpandoProperty.java
index 9903f17..c4eb583 100644
--- a/src/main/java/groovy/lang/MetaExpandoProperty.java
+++ b/src/main/java/groovy/lang/MetaExpandoProperty.java
@@ -37,6 +37,7 @@ public class MetaExpandoProperty extends MetaProperty {
      * @return the property of the given object
      * @throws Exception if the property could not be evaluated
      */
+    @Override
     public Object getProperty(Object object) {
         return value;
     }
@@ -47,6 +48,7 @@ public class MetaExpandoProperty extends MetaProperty {
      * @param object   on which to set the property
      * @param newValue the new value of the property
      */
+    @Override
     public void setProperty(Object object, Object newValue) {
         value = newValue;
     }
diff --git a/src/main/java/groovy/lang/MetaMethod.java b/src/main/java/groovy/lang/MetaMethod.java
index ee185fb..50e6181 100644
--- a/src/main/java/groovy/lang/MetaMethod.java
+++ b/src/main/java/groovy/lang/MetaMethod.java
@@ -159,6 +159,7 @@ public abstract class MetaMethod extends ParameterTypes implements Cloneable {
             + "]";
     }
 
+    @Override
     public Object clone() {
         try {
             return super.clone();
diff --git a/src/main/java/groovy/lang/MissingPropertyException.java b/src/main/java/groovy/lang/MissingPropertyException.java
index 4d27393..f6b3b3c 100644
--- a/src/main/java/groovy/lang/MissingPropertyException.java
+++ b/src/main/java/groovy/lang/MissingPropertyException.java
@@ -57,6 +57,7 @@ public class MissingPropertyException extends GroovyRuntimeException {
         this.type = type;
     }
 
+    @Override
     public String getMessageWithoutLocationText() {
         if (property == null || type == null) {
             return super.getMessageWithoutLocationText();
diff --git a/src/main/java/groovy/lang/NonEmptySequence.java b/src/main/java/groovy/lang/NonEmptySequence.java
index 4a6dbd8..3e8e126 100644
--- a/src/main/java/groovy/lang/NonEmptySequence.java
+++ b/src/main/java/groovy/lang/NonEmptySequence.java
@@ -40,6 +40,7 @@ public class NonEmptySequence extends Sequence {
         super(type, content);
     }
 
+    @Override
     public int minimumSize() {
         return 1;
     }
diff --git a/src/main/java/groovy/lang/ProxyMetaClass.java b/src/main/java/groovy/lang/ProxyMetaClass.java
index e3d788d..fbf1b8e 100644
--- a/src/main/java/groovy/lang/ProxyMetaClass.java
+++ b/src/main/java/groovy/lang/ProxyMetaClass.java
@@ -172,6 +172,7 @@ public class ProxyMetaClass extends MetaClassImpl implements AdaptingMetaClass {
      * @param property the property name
      * @return the value of the property
      */
+    @Override
     public Object getProperty(final Class aClass, final Object object, final String property, final boolean useSuper, final boolean fromInsideClass) {
         if (null == interceptor) {
             return super.getProperty(aClass, object, property, useSuper, fromInsideClass);
@@ -196,6 +197,7 @@ public class ProxyMetaClass extends MetaClassImpl implements AdaptingMetaClass {
      * @param property The property name to set
      * @param newValue The new value of the property
      */
+    @Override
     public void setProperty(final Class aClass, final Object object, final String property, final Object newValue, final boolean useSuper, final boolean fromInsideClass) {
         if (null == interceptor) {
             super.setProperty(aClass, object, property, newValue, useSuper, fromInsideClass);
diff --git a/src/main/java/groovy/lang/Reference.java b/src/main/java/groovy/lang/Reference.java
index e187d2b..e3bea35 100644
--- a/src/main/java/groovy/lang/Reference.java
+++ b/src/main/java/groovy/lang/Reference.java
@@ -37,6 +37,7 @@ public class Reference<T> extends GroovyObjectSupport implements Serializable {
         this.value = value;
     }
 
+    @Override
     public Object getProperty(String property) {
         Object value = get();
         if (value != null) {
@@ -45,6 +46,7 @@ public class Reference<T> extends GroovyObjectSupport implements Serializable {
         return super.getProperty(property);
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         Object value = get();
         if (value != null) {
@@ -55,6 +57,7 @@ public class Reference<T> extends GroovyObjectSupport implements Serializable {
         }
     }
 
+    @Override
     public Object invokeMethod(String name, Object args) {
         Object value = get();
         if (value != null) {
diff --git a/src/main/java/groovy/lang/Script.java b/src/main/java/groovy/lang/Script.java
index e36b64d..fd053ba 100644
--- a/src/main/java/groovy/lang/Script.java
+++ b/src/main/java/groovy/lang/Script.java
@@ -50,6 +50,7 @@ public abstract class Script extends GroovyObjectSupport {
         this.binding = binding;
     }
 
+    @Override
     public Object getProperty(String property) {
         try {
             return binding.getVariable(property);
@@ -58,6 +59,7 @@ public abstract class Script extends GroovyObjectSupport {
         }
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         if ("binding".equals(property)) {
             setBinding((Binding) newValue);
@@ -91,6 +93,7 @@ public abstract class Script extends GroovyObjectSupport {
      * @param args arguments to pass to the method
      * @return value
      */
+    @Override
     public Object invokeMethod(String name, Object args) {
         try {
             return super.invokeMethod(name, args);
diff --git a/src/main/java/groovy/lang/Sequence.java b/src/main/java/groovy/lang/Sequence.java
index 54f27d4..1409961 100644
--- a/src/main/java/groovy/lang/Sequence.java
+++ b/src/main/java/groovy/lang/Sequence.java
@@ -105,45 +105,53 @@ public class Sequence extends ArrayList implements GroovyObject {
         return type;
     }
 
+    @Override
     public void add(int index, Object element) {
         checkType(element);
         hashCode = 0;
         super.add(index, element);
     }
 
+    @Override
     public boolean add(Object element) {
         checkType(element);
         hashCode = 0;
         return super.add(element);
     }
 
+    @Override
     public boolean addAll(Collection c) {
         checkCollectionType(c);
         hashCode = 0;
         return super.addAll(c);
     }
 
+    @Override
     public boolean addAll(int index, Collection c) {
         checkCollectionType(c);
         hashCode = 0;
         return super.addAll(index, c);
     }
 
+    @Override
     public void clear() {
         hashCode = 0;
         super.clear();
     }
 
+    @Override
     public Object remove(int index) {
         hashCode = 0;
         return super.remove(index);
     }
 
+    @Override
     protected void removeRange(int fromIndex, int toIndex) {
         hashCode = 0;
         super.removeRange(fromIndex, toIndex);
     }
 
+    @Override
     public Object set(int index, Object element) {
         hashCode = 0;
         return super.set(index, element);
@@ -151,6 +159,7 @@ public class Sequence extends ArrayList implements GroovyObject {
 
     // GroovyObject interface
     //-------------------------------------------------------------------------
+    @Override
     public Object invokeMethod(String name, Object args) {
         try {
             return getMetaClass().invokeMethod(this, name, args);
@@ -165,18 +174,22 @@ public class Sequence extends ArrayList implements GroovyObject {
         }
     }
 
+    @Override
     public Object getProperty(String property) {
         return getMetaClass().getProperty(this, property);
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         getMetaClass().setProperty(this, property, newValue);
     }
 
+    @Override
     public MetaClass getMetaClass() {
         return metaClass;
     }
 
+    @Override
     public void setMetaClass(MetaClass metaClass) {
         this.metaClass = metaClass;
     }
diff --git a/src/main/java/groovy/lang/SpreadMap.java b/src/main/java/groovy/lang/SpreadMap.java
index 6b3d27b..4e00cb5 100644
--- a/src/main/java/groovy/lang/SpreadMap.java
+++ b/src/main/java/groovy/lang/SpreadMap.java
@@ -51,16 +51,19 @@ public class SpreadMap extends HashMap {
         this(list.toArray());
     }
 
+    @Override
     public Object put(Object key, Object value) {
         throw new RuntimeException("SpreadMap: " + this + " is an immutable map, and so ("
                                    + key + ": " + value + ") cannot be added.");
     }
 
+    @Override
     public Object remove(Object key) {
         throw new RuntimeException("SpreadMap: " + this + " is an immutable map, and so the key ("
                                    + key + ") cannot be deleted.");
     }
 
+    @Override
     public void putAll(Map t) {
         throw new RuntimeException("SpreadMap: " + this + " is an immutable map, and so the map ("
                                    + t + ") cannot be put in this spreadMap.");
diff --git a/src/main/java/groovy/lang/TracingInterceptor.java b/src/main/java/groovy/lang/TracingInterceptor.java
index f67de11..862e4ff 100644
--- a/src/main/java/groovy/lang/TracingInterceptor.java
+++ b/src/main/java/groovy/lang/TracingInterceptor.java
@@ -68,18 +68,21 @@ public class TracingInterceptor implements Interceptor {
         this.writer = writer;
     }
 
+    @Override
     public Object beforeInvoke(Object object, String methodName, Object[] arguments) {
         write(object, methodName, arguments, "before");
         indent++ ;
         return null;
     }
 
+    @Override
     public Object afterInvoke(Object object, String methodName, Object[] arguments, Object result) {
         indent--;
         write(object, methodName, arguments, "after ");
         return result;
     }
 
+    @Override
     public boolean doInvoke() {
         return true;
     }
diff --git a/src/main/java/groovy/time/BaseDuration.java b/src/main/java/groovy/time/BaseDuration.java
index dd21ab4..7e1f1b9 100644
--- a/src/main/java/groovy/time/BaseDuration.java
+++ b/src/main/java/groovy/time/BaseDuration.java
@@ -126,6 +126,7 @@ public abstract class BaseDuration implements Comparable<BaseDuration> {
 
     public abstract From getFrom();
 
+    @Override
     public int compareTo(BaseDuration otherDuration) {
         return Long.signum(toMilliseconds() - otherDuration.toMilliseconds());
     }
diff --git a/src/main/java/groovy/time/DatumDependentDuration.java b/src/main/java/groovy/time/DatumDependentDuration.java
index a87cb6c..17d3fc0 100644
--- a/src/main/java/groovy/time/DatumDependentDuration.java
+++ b/src/main/java/groovy/time/DatumDependentDuration.java
@@ -35,10 +35,12 @@ public class DatumDependentDuration extends BaseDuration {
         super(years, months, days, hours, minutes, seconds, millis);
     }
 
+    @Override
     public int getMonths() {
         return this.months;
     }
 
+    @Override
     public int getYears() {
         return this.years;
     }
@@ -90,11 +92,13 @@ public class DatumDependentDuration extends BaseDuration {
      * things like timezone and time of year will affect how this conversion 
      * occurs.
      */
+    @Override
     public long toMilliseconds() {
         final Date now = new Date();
         return TimeCategory.minus(plus(now), now).toMilliseconds();
     }
 
+    @Override
     public Date getAgo() {
         final Calendar cal = Calendar.getInstance();
 
@@ -114,8 +118,10 @@ public class DatumDependentDuration extends BaseDuration {
         return new Date(cal.getTimeInMillis());
     }
 
+    @Override
     public From getFrom() {
         return new From() {
+            @Override
             public Date getNow() {
                 final Calendar cal = Calendar.getInstance();
 
diff --git a/src/main/java/groovy/time/Duration.java b/src/main/java/groovy/time/Duration.java
index 7e652e7..20736df 100644
--- a/src/main/java/groovy/time/Duration.java
+++ b/src/main/java/groovy/time/Duration.java
@@ -77,10 +77,12 @@ public class Duration extends BaseDuration {
                                               this.getMillis() - rhs.getMillis());
     }
     
+    @Override
     public long toMilliseconds() {
         return ((((((long)(this.getDays() * 24 ) + this.getHours()) * 60 + this.getMinutes()) * 60) + this.getSeconds()) * 1000) + this.getMillis();
     }
     
+    @Override
     public Date getAgo() {
     final Calendar cal = Calendar.getInstance();
 
@@ -98,8 +100,10 @@ public class Duration extends BaseDuration {
         return new Date(cal.getTimeInMillis());
     }
      
+    @Override
     public From getFrom() {
         return new From() {
+            @Override
             public Date getNow() {
             final Calendar cal = Calendar.getInstance();
 
diff --git a/src/main/java/groovy/time/TimeDatumDependentDuration.java b/src/main/java/groovy/time/TimeDatumDependentDuration.java
index 00e9797..1ccfbe5 100644
--- a/src/main/java/groovy/time/TimeDatumDependentDuration.java
+++ b/src/main/java/groovy/time/TimeDatumDependentDuration.java
@@ -30,6 +30,7 @@ public class TimeDatumDependentDuration extends DatumDependentDuration {
         super(years, months, days, hours, minutes, seconds, millis);
     }
     
+    @Override
     public DatumDependentDuration plus(final Duration rhs) {
         return new TimeDatumDependentDuration(this.getYears(), this.getMonths(),
                                               this.getDays() + rhs.getDays(), this.getHours() + rhs.getHours(),
@@ -37,6 +38,7 @@ public class TimeDatumDependentDuration extends DatumDependentDuration {
                                               this.getMillis() + rhs.getMillis());
     }
     
+    @Override
     public DatumDependentDuration plus(final DatumDependentDuration rhs) {
         return new TimeDatumDependentDuration(this.getYears() + rhs.getYears(), this.getMonths() + rhs.getMonths(),
                                               this.getDays() + rhs.getDays(), this.getHours() + rhs.getHours(),
@@ -44,6 +46,7 @@ public class TimeDatumDependentDuration extends DatumDependentDuration {
                                               this.getMillis() + rhs.getMillis());
     }
     
+    @Override
     public DatumDependentDuration minus(final Duration rhs) {
         return new TimeDatumDependentDuration(this.getYears(), this.getMonths(),
                                               this.getDays() - rhs.getDays(), this.getHours() - rhs.getHours(),
@@ -51,6 +54,7 @@ public class TimeDatumDependentDuration extends DatumDependentDuration {
                                               this.getMillis() - rhs.getMillis());
     }
     
+    @Override
     public DatumDependentDuration minus(final DatumDependentDuration rhs) {
         return new TimeDatumDependentDuration(this.getYears() - rhs.getYears(), this.getMonths() - rhs.getMonths(),
                                               this.getDays() - rhs.getDays(), this.getHours() - rhs.getHours(),
@@ -58,8 +62,10 @@ public class TimeDatumDependentDuration extends DatumDependentDuration {
                                               this.getMillis() - rhs.getMillis());
     }
     
+    @Override
     public From getFrom() {
         return new From() {
+            @Override
             public Date getNow() {
             final Calendar cal = Calendar.getInstance();
 
diff --git a/src/main/java/groovy/time/TimeDuration.java b/src/main/java/groovy/time/TimeDuration.java
index 46e15b7..71e741b 100644
--- a/src/main/java/groovy/time/TimeDuration.java
+++ b/src/main/java/groovy/time/TimeDuration.java
@@ -44,12 +44,14 @@ public class TimeDuration extends Duration {
         super(days, hours, minutes, seconds, millis);
      }
     
+    @Override
     public Duration plus(final Duration rhs) {
         return new TimeDuration(this.getDays() + rhs.getDays(), this.getHours() + rhs.getHours(),
                                 this.getMinutes() + rhs.getMinutes(), this.getSeconds() + rhs.getSeconds(),
                                 this.getMillis() + rhs.getMillis());
     }
     
+    @Override
     public DatumDependentDuration plus(final DatumDependentDuration rhs) {
         return new TimeDatumDependentDuration(rhs.getYears(), rhs.getMonths(),
                                               this.getDays() + rhs.getDays(), this.getHours() + rhs.getHours(),
@@ -57,12 +59,14 @@ public class TimeDuration extends Duration {
                                               this.getMillis() + rhs.getMillis());
     }
     
+    @Override
     public Duration minus(final Duration rhs) {
         return new TimeDuration(this.getDays() - rhs.getDays(), this.getHours() - rhs.getHours(),
                                 this.getMinutes() - rhs.getMinutes(), this.getSeconds() - rhs.getSeconds(),
                                 this.getMillis() - rhs.getMillis());
     }
     
+    @Override
     public DatumDependentDuration minus(final DatumDependentDuration rhs) {
         return new TimeDatumDependentDuration(-rhs.getYears(), -rhs.getMonths(),
                                               this.getDays() - rhs.getDays(), this.getHours() - rhs.getHours(),
@@ -70,6 +74,7 @@ public class TimeDuration extends Duration {
                                               this.getMillis() - rhs.getMillis());
     }
     
+    @Override
     public Date getAgo() {
         final Calendar cal = Calendar.getInstance();
 
@@ -82,8 +87,10 @@ public class TimeDuration extends Duration {
         return cal.getTime();
     }        
 
+    @Override
     public From getFrom() {
         return new From() {
+            @Override
             public Date getNow() {
                 final Calendar cal = Calendar.getInstance();
 
diff --git a/src/main/java/groovy/transform/builder/DefaultStrategy.java b/src/main/java/groovy/transform/builder/DefaultStrategy.java
index fa64ba3..11f57f5 100644
--- a/src/main/java/groovy/transform/builder/DefaultStrategy.java
+++ b/src/main/java/groovy/transform/builder/DefaultStrategy.java
@@ -167,6 +167,7 @@ public class DefaultStrategy extends BuilderASTTransformation.AbstractBuilderStr
     private static final Expression DEFAULT_INITIAL_VALUE = null;
     private static final int PUBLIC_STATIC = ACC_PUBLIC | ACC_STATIC;
 
+    @Override
     public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno) {
         if (unsupportedAttribute(transform, anno, "forClass")) return;
         if (unsupportedAttribute(transform, anno, "force")) return;
diff --git a/src/main/java/groovy/transform/builder/ExternalStrategy.java b/src/main/java/groovy/transform/builder/ExternalStrategy.java
index bfcd174..8be1dfb 100644
--- a/src/main/java/groovy/transform/builder/ExternalStrategy.java
+++ b/src/main/java/groovy/transform/builder/ExternalStrategy.java
@@ -91,6 +91,7 @@ import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
 public class ExternalStrategy extends BuilderASTTransformation.AbstractBuilderStrategy {
     private static final Expression DEFAULT_INITIAL_VALUE = null;
 
+    @Override
     public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno) {
         if (!(annotatedNode instanceof ClassNode)) {
             transform.addError("Error during " + BuilderASTTransformation.MY_TYPE_NAME + " processing: building for " +
diff --git a/src/main/java/groovy/transform/builder/InitializerStrategy.java b/src/main/java/groovy/transform/builder/InitializerStrategy.java
index 7ccf008..fd54821 100644
--- a/src/main/java/groovy/transform/builder/InitializerStrategy.java
+++ b/src/main/java/groovy/transform/builder/InitializerStrategy.java
@@ -136,6 +136,7 @@ public class InitializerStrategy extends BuilderASTTransformation.AbstractBuilde
     private static final Expression DEFAULT_INITIAL_VALUE = null;
     private static final ClassNode TUPLECONS_TYPE = ClassHelper.make(TupleConstructor.class);
 
+    @Override
     public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno) {
         if (unsupportedAttribute(transform, anno, "forClass")) return;
         if (unsupportedAttribute(transform, anno, "allProperties")) return;
diff --git a/src/main/java/groovy/transform/builder/SimpleStrategy.java b/src/main/java/groovy/transform/builder/SimpleStrategy.java
index 7abad5d..5273426 100644
--- a/src/main/java/groovy/transform/builder/SimpleStrategy.java
+++ b/src/main/java/groovy/transform/builder/SimpleStrategy.java
@@ -80,6 +80,7 @@ import static org.codehaus.groovy.transform.BuilderASTTransformation.NO_EXCEPTIO
  * The other annotation attributes for the {@code @Builder} transform for configuring the building process aren't applicable for this strategy.
  */
 public class SimpleStrategy extends BuilderASTTransformation.AbstractBuilderStrategy {
+    @Override
     public void build(BuilderASTTransformation transform, AnnotatedNode annotatedNode, AnnotationNode anno) {
         if (!(annotatedNode instanceof ClassNode)) {
             transform.addError("Error during " + BuilderASTTransformation.MY_TYPE_NAME + " processing: building for " +
diff --git a/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java b/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java
index b24a209..2d33d01 100644
--- a/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java
+++ b/src/main/java/groovy/transform/stc/MapEntryOrKeyValue.java
@@ -54,6 +54,7 @@ import java.util.Map;
 public class MapEntryOrKeyValue extends ClosureSignatureHint {
     private static final ClassNode MAPENTRY_TYPE = ClassHelper.make(Map.Entry.class);
 
+    @Override
     public List<ClassNode[]> getClosureSignatures(final MethodNode node, final SourceUnit sourceUnit, final CompilationUnit compilationUnit, final String[] options, final ASTNode usage) {
         Options opt;
         try {
diff --git a/src/main/java/groovy/transform/stc/SingleSignatureClosureHint.java b/src/main/java/groovy/transform/stc/SingleSignatureClosureHint.java
index 7396168..1d4e77d 100644
--- a/src/main/java/groovy/transform/stc/SingleSignatureClosureHint.java
+++ b/src/main/java/groovy/transform/stc/SingleSignatureClosureHint.java
@@ -37,6 +37,7 @@ public abstract class SingleSignatureClosureHint extends ClosureSignatureHint {
 
     public abstract ClassNode[] getParameterTypes(MethodNode node, String[] options, SourceUnit sourceUnit, CompilationUnit unit, ASTNode usage);
 
+    @Override
     public List<ClassNode[]> getClosureSignatures(final MethodNode node, final SourceUnit sourceUnit, final CompilationUnit compilationUnit, final String[] options, final ASTNode usage) {
         return Collections.singletonList(getParameterTypes(node, options, sourceUnit, compilationUnit, usage));
     }
diff --git a/src/main/java/groovy/ui/GroovyMain.java b/src/main/java/groovy/ui/GroovyMain.java
index ebf6ace..752fd62 100644
--- a/src/main/java/groovy/ui/GroovyMain.java
+++ b/src/main/java/groovy/ui/GroovyMain.java
@@ -520,6 +520,7 @@ public class GroovyMain {
                 classLoader = loader;
             }
 
+            @Override
             public Object run() {
                 current.setContextClassLoader(classLoader);
                 return null;
diff --git a/src/main/java/groovy/ui/GroovySocketServer.java b/src/main/java/groovy/ui/GroovySocketServer.java
index e306fd5..239c0ba 100644
--- a/src/main/java/groovy/ui/GroovySocketServer.java
+++ b/src/main/java/groovy/ui/GroovySocketServer.java
@@ -149,6 +149,7 @@ public class GroovySocketServer implements Runnable {
     * Runs this server. There is typically no need to call this method, as the object's constructor
     * creates a new thread and runs this object automatically. 
     */
+    @Override
     public void run() {
         try (ServerSocket serverSocket = new ServerSocket(url.getPort())) {
             while (true) {
@@ -182,6 +183,7 @@ public class GroovySocketServer implements Runnable {
             writer = new PrintWriter(socket.getOutputStream());
             new Thread(this, "Groovy client connection - " + socket.getInetAddress().getHostAddress()).start();
         }
+        @Override
         public void run() {
             try {
                 String line = null;
diff --git a/src/main/java/groovy/util/AbstractFactory.java b/src/main/java/groovy/util/AbstractFactory.java
index eb8d509..3ebaedc 100644
--- a/src/main/java/groovy/util/AbstractFactory.java
+++ b/src/main/java/groovy/util/AbstractFactory.java
@@ -23,36 +23,44 @@ import groovy.lang.Closure;
 import java.util.Map;
 
 public abstract class AbstractFactory implements Factory {
+    @Override
     public boolean isLeaf() {
         return false;
     }
 
+    @Override
     public boolean isHandlesNodeChildren() {
         return false;
     }
 
+    @Override
     public void onFactoryRegistration(FactoryBuilderSupport builder, String registeredName, String group) {
         // do nothing
     }
 
-    public boolean onHandleNodeAttributes( FactoryBuilderSupport builder, Object node,
-            Map attributes ) {
+    @Override
+    public boolean onHandleNodeAttributes(FactoryBuilderSupport builder, Object node,
+                                          Map attributes ) {
         return true;
     }
 
-    public boolean onNodeChildren( FactoryBuilderSupport builder, Object node, Closure childContent) {
+    @Override
+    public boolean onNodeChildren(FactoryBuilderSupport builder, Object node, Closure childContent) {
         return true;
     }
 
-    public void onNodeCompleted( FactoryBuilderSupport builder, Object parent, Object node ) {
+    @Override
+    public void onNodeCompleted(FactoryBuilderSupport builder, Object parent, Object node ) {
         // do nothing
     }
 
-    public void setParent( FactoryBuilderSupport builder, Object parent, Object child ) {
+    @Override
+    public void setParent(FactoryBuilderSupport builder, Object parent, Object child ) {
         // do nothing
     }
 
-    public void setChild( FactoryBuilderSupport builder, Object parent, Object child ) {
+    @Override
+    public void setChild(FactoryBuilderSupport builder, Object parent, Object child ) {
         // do nothing
     }
 
diff --git a/src/main/java/groovy/util/BuilderSupport.java b/src/main/java/groovy/util/BuilderSupport.java
index 95bc051..6586dca 100644
--- a/src/main/java/groovy/util/BuilderSupport.java
+++ b/src/main/java/groovy/util/BuilderSupport.java
@@ -69,6 +69,7 @@ public abstract class BuilderSupport extends GroovyObjectSupport {
         return invokeMethod(methodName, null);
     }
 
+    @Override
     public Object invokeMethod(final String methodName, final Object args) {
         Object name = getName(methodName);
         return doInvokeMethod(methodName, name, args);
diff --git a/src/main/java/groovy/util/ClosureComparator.java b/src/main/java/groovy/util/ClosureComparator.java
index a791521..59852a6 100644
--- a/src/main/java/groovy/util/ClosureComparator.java
+++ b/src/main/java/groovy/util/ClosureComparator.java
@@ -36,6 +36,7 @@ public class ClosureComparator<T> implements Comparator<T>, Serializable {
         this.closure = closure;
     }
 
+    @Override
     public int compare(T object1, T object2) {
         Object value = closure.call(object1, object2);
         return DefaultTypeTransformation.intUnbox(value);
diff --git a/src/main/java/groovy/util/ConfigObject.java b/src/main/java/groovy/util/ConfigObject.java
index 27ed12f..12835f3 100644
--- a/src/main/java/groovy/util/ConfigObject.java
+++ b/src/main/java/groovy/util/ConfigObject.java
@@ -80,6 +80,7 @@ public class ConfigObject extends GroovyObjectSupport implements Writable, Map,
      *
      * @see groovy.lang.Writable#writeTo(java.io.Writer)
      */
+    @Override
     public Writer writeTo(Writer outArg) throws IOException {
         BufferedWriter out = new BufferedWriter(outArg);
         try {
@@ -96,6 +97,7 @@ public class ConfigObject extends GroovyObjectSupport implements Writable, Map,
      * Overrides the default getProperty implementation to create nested ConfigObject instances on demand
      * for non-existent keys
      */
+    @Override
     public Object getProperty(String name) {
         if ("configFile".equals(name))
             return this.configFile;
@@ -309,50 +311,62 @@ public class ConfigObject extends GroovyObjectSupport implements Writable, Map,
         }
     }
 
+    @Override
     public int size() {
         return delegateMap.size();
     }
 
+    @Override
     public boolean isEmpty() {
         return delegateMap.isEmpty();
     }
 
+    @Override
     public boolean containsKey(Object key) {
         return delegateMap.containsKey(key);
     }
 
+    @Override
     public boolean containsValue(Object value) {
         return delegateMap.containsValue(value);
     }
 
+    @Override
     public Object get(Object key) {
         return delegateMap.get(key);
     }
 
+    @Override
     public Object put(Object key, Object value) {
         return delegateMap.put(key, value);
     }
 
+    @Override
     public Object remove(Object key) {
         return delegateMap.remove(key);
     }
 
+    @Override
     public void putAll(Map m) {
         delegateMap.putAll(m);
     }
 
+    @Override
     public void clear() {
         delegateMap.clear();
     }
 
+    @Override
     public Set keySet() {
         return delegateMap.keySet();
     }
 
+    @Override
     public Collection values() {
         return delegateMap.values();
     }
 
+    @Override
     public Set entrySet() {
         return delegateMap.entrySet();
     }
@@ -361,6 +375,7 @@ public class ConfigObject extends GroovyObjectSupport implements Writable, Map,
      * Returns a shallow copy of this ConfigObject, keys and configuration entries are not cloned.
      * @return a shallow copy of this ConfigObject
      */
+    @Override
     public ConfigObject clone() {
         try {
             ConfigObject clone = (ConfigObject) super.clone();
diff --git a/src/main/java/groovy/util/Expando.java b/src/main/java/groovy/util/Expando.java
index a156fdb..3ed5a86 100644
--- a/src/main/java/groovy/util/Expando.java
+++ b/src/main/java/groovy/util/Expando.java
@@ -66,6 +66,7 @@ public class Expando extends GroovyObjectSupport {
         return ret;
     }
 
+    @Override
     public Object getProperty(String property) {
         // always use the expando properties first
         Object result = getProperties().get(property);
@@ -79,11 +80,13 @@ public class Expando extends GroovyObjectSupport {
         return null;
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         // always use the expando properties
         getProperties().put(property, newValue);
     }
 
+    @Override
     public Object invokeMethod(String name, Object args) {
         try {
             return super.invokeMethod(name, args);
diff --git a/src/main/java/groovy/util/FactoryBuilderSupport.java b/src/main/java/groovy/util/FactoryBuilderSupport.java
index 7c9642f..c9b32b0 100644
--- a/src/main/java/groovy/util/FactoryBuilderSupport.java
+++ b/src/main/java/groovy/util/FactoryBuilderSupport.java
@@ -219,6 +219,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      * @param name the name of the variable to lookup
      * @return the variable value
      */
+    @Override
     public Object getVariable(String name) {
         try {
             return getProxyBuilder().doGetVariable(name);
@@ -240,6 +241,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      * @param name  the name of the variable to set
      * @param value the new value for the given variable
      */
+    @Override
     public void setVariable(String name, Object value) {
         getProxyBuilder().doSetVariable(name, value);
     }
@@ -248,6 +250,7 @@ public abstract class FactoryBuilderSupport extends Binding {
         super.setVariable(name, value);
     }
 
+    @Override
     public Map getVariables() {
         return getProxyBuilder().doGetVariables();
     }
@@ -259,6 +262,7 @@ public abstract class FactoryBuilderSupport extends Binding {
     /**
      * Overloaded to make variables appear as bean properties or via the subscript operator
      */
+    @Override
     public Object getProperty(String property) {
         try {
             return getProxyBuilder().doGetProperty(property);
@@ -295,6 +299,7 @@ public abstract class FactoryBuilderSupport extends Binding {
     /**
      * Overloaded to make variables appear as bean properties or via the subscript operator
      */
+    @Override
     public void setProperty(String property, Object newValue) {
         getProxyBuilder().doSetProperty(property, newValue);
     }
@@ -489,6 +494,7 @@ public abstract class FactoryBuilderSupport extends Binding {
         return getProxyBuilder().invokeMethod(methodName, null);
     }
 
+    @Override
     public Object invokeMethod(String methodName, Object args) {
         Object name = getProxyBuilder().getName(methodName);
         Object result;
@@ -647,6 +653,7 @@ public abstract class FactoryBuilderSupport extends Binding {
      */
     public void registerBeanFactory(String theName, String groupName, final Class beanClass) {
         getProxyBuilder().registerFactory(theName, new AbstractFactory() {
+            @Override
             public Object newInstance(FactoryBuilderSupport builder, Object name, Object value,
                                       Map properties) throws InstantiationException, IllegalAccessException {
                 if (checkValueIsTypeNotString(value, name, beanClass)) {
@@ -1297,6 +1304,7 @@ class FactoryInterceptorMetaClass extends DelegatingMetaClass {
         this.builder = builder;
     }
 
+    @Override
     public Object invokeMethod(Object object, String methodName, Object arguments) {
         try {
             return delegate.invokeMethod(object, methodName, arguments);
@@ -1322,6 +1330,7 @@ class FactoryInterceptorMetaClass extends DelegatingMetaClass {
         }
     }
 
+    @Override
     public Object invokeMethod(Object object, String methodName, Object[] arguments) {
         try {
             return delegate.invokeMethod(object, methodName, arguments);
diff --git a/src/main/java/groovy/util/GroovyScriptEngine.java b/src/main/java/groovy/util/GroovyScriptEngine.java
index 829dbaa..f4bbd58 100644
--- a/src/main/java/groovy/util/GroovyScriptEngine.java
+++ b/src/main/java/groovy/util/GroovyScriptEngine.java
@@ -358,6 +358,7 @@ public class GroovyScriptEngine implements ResourceConnector {
      * @return a URLConnection to the resource
      * @throws ResourceException
      */
+    @Override
     public URLConnection getResourceConnection(String resourceName) throws ResourceException {
         // Get the URLConnection
         URLConnection groovyScriptConn = null;
diff --git a/src/main/java/groovy/util/MapEntry.java b/src/main/java/groovy/util/MapEntry.java
index 55e023b..4973c49 100644
--- a/src/main/java/groovy/util/MapEntry.java
+++ b/src/main/java/groovy/util/MapEntry.java
@@ -54,6 +54,7 @@ public class MapEntry implements Map.Entry {
         return "" + key + ":" + value;
     }
 
+    @Override
     public Object getKey() {
         return key;
     }
@@ -62,10 +63,12 @@ public class MapEntry implements Map.Entry {
         this.key = key;
     }
 
+    @Override
     public Object getValue() {
         return value;
     }
 
+    @Override
     public Object setValue(Object value) {
         this.value = value;
         return value;
diff --git a/src/main/java/groovy/util/NodeBuilder.java b/src/main/java/groovy/util/NodeBuilder.java
index 79a3864..cb9baed 100644
--- a/src/main/java/groovy/util/NodeBuilder.java
+++ b/src/main/java/groovy/util/NodeBuilder.java
@@ -30,21 +30,26 @@ public class NodeBuilder extends BuilderSupport {
         return new NodeBuilder();
     }
 
+    @Override
     protected void setParent(Object parent, Object child) {
     }
 
+    @Override
     protected Object createNode(Object name) {
         return new Node(getCurrentNode(), name);
     }
 
+    @Override
     protected Object createNode(Object name, Object value) {
         return new Node(getCurrentNode(), name, value);
     }
 
+    @Override
     protected Object createNode(Object name, Map attributes) {
         return new Node(getCurrentNode(), name, attributes);
     }
 
+    @Override
     protected Object createNode(Object name, Map attributes, Object value) {
         return new Node(getCurrentNode(), name, attributes, value);
     }
diff --git a/src/main/java/groovy/util/ObjectGraphBuilder.java b/src/main/java/groovy/util/ObjectGraphBuilder.java
index 5a10b26..c09e565 100644
--- a/src/main/java/groovy/util/ObjectGraphBuilder.java
+++ b/src/main/java/groovy/util/ObjectGraphBuilder.java
@@ -291,6 +291,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
                 : new DefaultRelationNameResolver();
     }
 
+    @Override
     protected void postInstantiate(Object name, Map attributes, Object node) {
         super.postInstantiate(name, attributes, node);
         Map context = getContext();
@@ -300,6 +301,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
         }
     }
 
+    @Override
     protected void preInstantiate(Object name, Map attributes, Object value) {
         super.preInstantiate(name, attributes, value);
         Map context = getContext();
@@ -307,6 +309,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
                 attributes.remove(identifierResolver.getIdentifierFor((String) name)));
     }
 
+    @Override
     protected Factory resolveFactory(Object name, Map attributes, Object value) {
         // let custom factories be resolved first
         Factory factory = super.resolveFactory(name, attributes, value);
@@ -352,6 +355,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
      * collection.
      */
     public static class DefaultChildPropertySetter implements ChildPropertySetter {
+        @Override
         public void setChild(Object parent, Object child, String parentName, String propertyName) {
             try {
                 Object property = InvokerHelper.getProperty(parent, propertyName);
@@ -370,6 +374,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
      * Default impl that capitalizes the classname.
      */
     public static class DefaultClassNameResolver implements ClassNameResolver {
+        @Override
         public String resolveClassname(String classname) {
             if (classname.length() == 1) {
                 return classname.toUpperCase();
@@ -392,6 +397,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
             this.root = root;
         }
 
+        @Override
         public String resolveClassname(String classname) {
             Object currentNode = getContext().get(CURRENT_NODE);
 
@@ -433,6 +439,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
      * Default impl, always returns 'id'
      */
     public static class DefaultIdentifierResolver implements IdentifierResolver {
+        @Override
         public String getIdentifierFor(String nodeName) {
             return "id";
         }
@@ -442,6 +449,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
      * Default impl that calls Class.newInstance()
      */
     public static class DefaultNewInstanceResolver implements NewInstanceResolver {
+        @Override
         public Object newInstance(Class klass, Map attributes) throws InstantiationException,
                 IllegalAccessException {
             return klass.newInstance();
@@ -452,6 +460,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
      * Default impl, always returns 'refId'
      */
     public static class DefaultReferenceResolver implements ReferenceResolver {
+        @Override
         public String getReferenceFor(String nodeName) {
             return "refId";
         }
@@ -471,6 +480,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
          *
          * @see <a href="http://en.wikipedia.org/wiki/English_plural">English_plural</a>
          */
+        @Override
         public String resolveChildRelationName(String parentName, Object parent, String childName,
                                                Object child) {
             boolean matchesIESRule = PLURAL_IES_PATTERN.matcher(childName).matches();
@@ -486,6 +496,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
          * Follow the most conventional pattern, returns the parentName
          * unchanged.
          */
+        @Override
         public String resolveParentRelationName(String parentName, Object parent,
                                                 String childName, Object child) {
             return parentName;
@@ -595,6 +606,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
     }
 
     private static class ObjectFactory extends AbstractFactory {
+        @Override
         public Object newInstance(FactoryBuilderSupport builder, Object name, Object value,
                                   Map properties) throws InstantiationException, IllegalAccessException {
             ObjectGraphBuilder ogbuilder = (ObjectGraphBuilder) builder;
@@ -644,6 +656,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
             return ogbuilder.newInstanceResolver.newInstance(klass, properties);
         }
 
+        @Override
         public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
             if (child == null) return;
 
@@ -668,6 +681,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
             }
         }
 
+        @Override
         public void setParent(FactoryBuilderSupport builder, Object parent, Object child) {
             if (child == null) return;
 
@@ -701,6 +715,7 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
     }
 
     private static class ObjectBeanFactory extends ObjectFactory {
+        @Override
         public Object newInstance(FactoryBuilderSupport builder, Object name, Object value,
                                   Map properties) throws InstantiationException, IllegalAccessException {
             if(value == null) return super.newInstance(builder, name, value, properties);
@@ -736,10 +751,12 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
     }
 
     private static class ObjectRefFactory extends ObjectFactory {
+        @Override
         public boolean isLeaf() {
             return true;
         }
 
+        @Override
         public Object newInstance(FactoryBuilderSupport builder, Object name, Object value,
                                   Map properties) throws InstantiationException, IllegalAccessException {
             ObjectGraphBuilder ogbuilder = (ObjectGraphBuilder) builder;
@@ -798,11 +815,13 @@ public class ObjectGraphBuilder extends FactoryBuilderSupport {
             return object;
         }
 
+        @Override
         public void setChild(FactoryBuilderSupport builder, Object parent, Object child) {
             Boolean lazy = (Boolean) builder.getContext().get(ObjectGraphBuilder.LAZY_REF);
             if (!lazy) super.setChild(builder, parent, child);
         }
 
+        @Override
         public void setParent(FactoryBuilderSupport builder, Object parent, Object child) {
             Boolean lazy = (Boolean) builder.getContext().get(ObjectGraphBuilder.LAZY_REF);
             if (!lazy) super.setParent(builder, parent, child);
diff --git a/src/main/java/groovy/util/ObservableList.java b/src/main/java/groovy/util/ObservableList.java
index 84a9c89..ecadfd1 100644
--- a/src/main/java/groovy/util/ObservableList.java
+++ b/src/main/java/groovy/util/ObservableList.java
@@ -134,12 +134,14 @@ public class ObservableList implements List {
         pcs.firePropertyChange(new PropertyChangeEvent(this, SIZE_PROPERTY, oldValue, newValue));
     }
 
+    @Override
     public void add(int index, Object element) {
         int oldSize = size();
         delegate.add(index, element);
         fireAddWithTest(element, index, oldSize);
     }
 
+    @Override
     public boolean add(Object o) {
         int oldSize = size();
         boolean success = delegate.add(o);
@@ -162,10 +164,12 @@ public class ObservableList implements List {
         }
     }
 
+    @Override
     public boolean addAll(Collection c) {
         return addAll(size(), c);
     }
 
+    @Override
     public boolean addAll(int index, Collection c) {
         int oldSize = size();
         boolean success = delegate.addAll(index, c);
@@ -191,6 +195,7 @@ public class ObservableList implements List {
         return success;
     }
 
+    @Override
     public void clear() {
         int oldSize = size();
         List values = new ArrayList(delegate);
@@ -201,10 +206,12 @@ public class ObservableList implements List {
         fireSizeChangedEvent(oldSize, size());
     }
 
+    @Override
     public boolean contains(Object o) {
         return delegate.contains(o);
     }
 
+    @Override
     public boolean containsAll(Collection c) {
         return delegate.containsAll(c);
     }
@@ -213,6 +220,7 @@ public class ObservableList implements List {
         return delegate.equals(o);
     }
 
+    @Override
     public Object get(int index) {
         return delegate.get(index);
     }
@@ -221,30 +229,37 @@ public class ObservableList implements List {
         return delegate.hashCode();
     }
 
+    @Override
     public int indexOf(Object o) {
         return delegate.indexOf(o);
     }
 
+    @Override
     public boolean isEmpty() {
         return delegate.isEmpty();
     }
 
+    @Override
     public Iterator iterator() {
         return new ObservableIterator(delegate.iterator());
     }
 
+    @Override
     public int lastIndexOf(Object o) {
         return delegate.lastIndexOf(o);
     }
 
+    @Override
     public ListIterator listIterator() {
         return new ObservableListIterator(delegate.listIterator(), 0);
     }
 
+    @Override
     public ListIterator listIterator(int index) {
         return new ObservableListIterator(delegate.listIterator(index), index);
     }
 
+    @Override
     public Object remove(int index) {
         int oldSize = size();
         Object element = delegate.remove(index);
@@ -253,6 +268,7 @@ public class ObservableList implements List {
         return element;
     }
 
+    @Override
     public boolean remove(Object o) {
         int oldSize = size();
         int index = delegate.indexOf(o);
@@ -264,6 +280,7 @@ public class ObservableList implements List {
         return success;
     }
 
+    @Override
     public boolean removeAll(Collection c) {
         if (c == null) {
             return false;
@@ -291,6 +308,7 @@ public class ObservableList implements List {
         return success;
     }
 
+    @Override
     public boolean retainAll(Collection c) {
         if (c == null) {
             return false;
@@ -317,6 +335,7 @@ public class ObservableList implements List {
         return success;
     }
 
+    @Override
     public Object set(int index, Object element) {
         Object oldValue = delegate.set(index, element);
         if (test != null) {
@@ -330,6 +349,7 @@ public class ObservableList implements List {
         return oldValue;
     }
 
+    @Override
     public int size() {
         return delegate.size();
     }
@@ -338,14 +358,17 @@ public class ObservableList implements List {
         return size();
     }
 
+    @Override
     public List subList(int fromIndex, int toIndex) {
         return delegate.subList(fromIndex, toIndex);
     }
 
+    @Override
     public Object[] toArray() {
         return delegate.toArray();
     }
 
+    @Override
     public Object[] toArray(Object[] a) {
         return delegate.toArray(a);
     }
@@ -362,15 +385,18 @@ public class ObservableList implements List {
             return iterDelegate;
         }
 
+        @Override
         public boolean hasNext() {
             return iterDelegate.hasNext();
         }
 
+        @Override
         public Object next() {
             cursor++;
             return iterDelegate.next();
         }
 
+        @Override
         public void remove() {
             int oldSize = ObservableList.this.size();
             Object element = ObservableList.this.get(cursor);
@@ -391,27 +417,33 @@ public class ObservableList implements List {
             return (ListIterator) getDelegate();
         }
 
+        @Override
         public void add(Object o) {
             ObservableList.this.add(o);
             cursor++;
         }
 
+        @Override
         public boolean hasPrevious() {
             return getListIterator().hasPrevious();
         }
 
+        @Override
         public int nextIndex() {
             return getListIterator().nextIndex();
         }
 
+        @Override
         public Object previous() {
             return getListIterator().previous();
         }
 
+        @Override
         public int previousIndex() {
             return getListIterator().previousIndex();
         }
 
+        @Override
         public void set(Object o) {
             ObservableList.this.set(cursor, o);
         }
diff --git a/src/main/java/groovy/util/ObservableMap.java b/src/main/java/groovy/util/ObservableMap.java
index 2ccec3c..3dc0672 100644
--- a/src/main/java/groovy/util/ObservableMap.java
+++ b/src/main/java/groovy/util/ObservableMap.java
@@ -134,6 +134,7 @@ public class ObservableMap implements Map {
 
     // Map interface
 
+    @Override
     public void clear() {
         int oldSize = size();
         Map values = new HashMap();
@@ -145,14 +146,17 @@ public class ObservableMap implements Map {
         fireSizeChangedEvent(oldSize, size());
     }
 
+    @Override
     public boolean containsKey(Object key) {
         return delegate.containsKey(key);
     }
 
+    @Override
     public boolean containsValue(Object value) {
         return delegate.containsValue(value);
     }
 
+    @Override
     public Set entrySet() {
         return delegate.entrySet();
     }
@@ -161,6 +165,7 @@ public class ObservableMap implements Map {
         return delegate.equals(o);
     }
 
+    @Override
     public Object get(Object key) {
         return delegate.get(key);
     }
@@ -169,14 +174,17 @@ public class ObservableMap implements Map {
         return delegate.hashCode();
     }
 
+    @Override
     public boolean isEmpty() {
         return delegate.isEmpty();
     }
 
+    @Override
     public Set keySet() {
         return delegate.keySet();
     }
 
+    @Override
     public Object put(Object key, Object value) {
         int oldSize = size();
         Object oldValue = null;
@@ -209,6 +217,7 @@ public class ObservableMap implements Map {
         return oldValue;
     }
 
+    @Override
     public void putAll(Map map) {
         int oldSize = size();
         if (map != null) {
@@ -252,6 +261,7 @@ public class ObservableMap implements Map {
         }
     }
 
+    @Override
     public Object remove(Object key) {
         int oldSize = size();
         Object result = delegate.remove(key);
@@ -262,6 +272,7 @@ public class ObservableMap implements Map {
         return result;
     }
 
+    @Override
     public int size() {
         return delegate.size();
     }
@@ -270,6 +281,7 @@ public class ObservableMap implements Map {
         return size();
     }
 
+    @Override
     public Collection values() {
         return delegate.values();
     }
diff --git a/src/main/java/groovy/util/ObservableSet.java b/src/main/java/groovy/util/ObservableSet.java
index 7ac3ce9..078fa83 100644
--- a/src/main/java/groovy/util/ObservableSet.java
+++ b/src/main/java/groovy/util/ObservableSet.java
@@ -161,30 +161,37 @@ public class ObservableSet<E> implements Set<E> {
         return pcs.hasListeners(propertyName);
     }
 
+    @Override
     public int size() {
         return delegate.size();
     }
 
+    @Override
     public boolean isEmpty() {
         return delegate.isEmpty();
     }
 
+    @Override
     public boolean contains(Object o) {
         return delegate.contains(o);
     }
 
+    @Override
     public Iterator<E> iterator() {
         return new ObservableIterator<E>(delegate.iterator());
     }
 
+    @Override
     public Object[] toArray() {
         return delegate.toArray();
     }
 
+    @Override
     public <T> T[] toArray(T[] ts) {
         return (T[]) delegate.toArray(ts);
     }
 
+    @Override
     public boolean add(E e) {
         int oldSize = size();
         boolean success = delegate.add(e);
@@ -203,6 +210,7 @@ public class ObservableSet<E> implements Set<E> {
         return success;
     }
 
+    @Override
     public boolean remove(Object o) {
         int oldSize = size();
         boolean success = delegate.remove(o);
@@ -213,10 +221,12 @@ public class ObservableSet<E> implements Set<E> {
         return success;
     }
 
+    @Override
     public boolean containsAll(Collection<?> objects) {
         return delegate.containsAll(objects);
     }
 
+    @Override
     public boolean addAll(Collection<? extends E> c) {
         Set<E> duplicates = new HashSet<E>();
         if (null != c) {
@@ -250,6 +260,7 @@ public class ObservableSet<E> implements Set<E> {
         return success;
     }
 
+    @Override
     public boolean retainAll(Collection<?> c) {
         if (c == null) {
             return false;
@@ -276,6 +287,7 @@ public class ObservableSet<E> implements Set<E> {
         return success;
     }
 
+    @Override
     public boolean removeAll(Collection<?> c) {
         if (c == null) {
             return false;
@@ -298,6 +310,7 @@ public class ObservableSet<E> implements Set<E> {
         return success;
     }
 
+    @Override
     public void clear() {
         int oldSize = size();
         List<E> values = new ArrayList<E>(delegate);
@@ -320,15 +333,18 @@ public class ObservableSet<E> implements Set<E> {
             return iterDelegate;
         }
 
+        @Override
         public boolean hasNext() {
             return iterDelegate.hasNext();
         }
 
+        @Override
         public E next() {
             stack.push(iterDelegate.next());
             return stack.peek();
         }
 
+        @Override
         public void remove() {
             int oldSize = ObservableSet.this.size();
             iterDelegate.remove();
diff --git a/src/main/java/groovy/util/OrderBy.java b/src/main/java/groovy/util/OrderBy.java
index a20d364..7abb31a 100644
--- a/src/main/java/groovy/util/OrderBy.java
+++ b/src/main/java/groovy/util/OrderBy.java
@@ -68,6 +68,7 @@ public class OrderBy<T> implements Comparator<T>, Serializable {
         closures.add(closure);
     }
 
+    @Override
     public int compare(T object1, T object2) {
         for (Closure closure : closures) {
             Object value1 = closure.call(object1);
diff --git a/src/main/java/groovy/util/PermutationGenerator.java b/src/main/java/groovy/util/PermutationGenerator.java
index 59c59c0..8410e70 100644
--- a/src/main/java/groovy/util/PermutationGenerator.java
+++ b/src/main/java/groovy/util/PermutationGenerator.java
@@ -74,6 +74,7 @@ public class PermutationGenerator<E> implements Iterator<List<E>> {
         return total;
     }
 
+    @Override
     public boolean hasNext() {
         return numLeft.compareTo(BigInteger.ZERO) > 0;
     }
@@ -97,6 +98,7 @@ public class PermutationGenerator<E> implements Iterator<List<E>> {
      *
      * @return the items permuted
      */
+    @Override
     public List<E> next() {
         if (numLeft.equals(total)) {
             numLeft = numLeft.subtract(BigInteger.ONE);
@@ -143,6 +145,7 @@ public class PermutationGenerator<E> implements Iterator<List<E>> {
         return ans;
     }
 
+    @Override
     public void remove() {
         throw new UnsupportedOperationException("remove() not allowed for PermutationGenerator");
     }
diff --git a/src/main/java/groovy/util/Proxy.java b/src/main/java/groovy/util/Proxy.java
index a8ef890..63af130 100644
--- a/src/main/java/groovy/util/Proxy.java
+++ b/src/main/java/groovy/util/Proxy.java
@@ -51,6 +51,7 @@ public class Proxy extends GroovyObjectSupport {
         this.adaptee = adaptee;
     }
 
+    @Override
     public Object invokeMethod(String name, Object args) {
         try {
             return super.invokeMethod(name, args);
diff --git a/src/main/java/org/apache/groovy/antlr/LexerFrame.java b/src/main/java/org/apache/groovy/antlr/LexerFrame.java
index d7cacd2..0e10081 100644
--- a/src/main/java/org/apache/groovy/antlr/LexerFrame.java
+++ b/src/main/java/org/apache/groovy/antlr/LexerFrame.java
@@ -99,6 +99,7 @@ public class LexerFrame extends JFrame implements ActionListener {
                 popup.add(loadFileAction);
                 jbutton.setSize(30, 30);
                 jbutton.addMouseListener(new MouseAdapter() {
+                    @Override
                     public void mouseReleased(MouseEvent e) {
                         //if(e.isPopupTrigger())
                         popup.show(scriptPane, e.getX(), e.getY());
@@ -138,6 +139,7 @@ public class LexerFrame extends JFrame implements ActionListener {
         tokens.put(-1, "EOF");
     }
 
+    @Override
     public void actionPerformed(ActionEvent ae) {
         Token token = (Token) ((JComponent) ae.getSource()).getClientProperty("token");
         if (eof().equals(token.getType())) {
@@ -157,6 +159,7 @@ public class LexerFrame extends JFrame implements ActionListener {
     private final Action loadFileAction = new AbstractAction("Open File...") {
         private static final long serialVersionUID = 4541927184172762704L;
 
+        @Override
         public void actionPerformed(ActionEvent ae) {
             final JFileChooser jfc = new JFileChooser();
             final int response = jfc.showOpenDialog(LexerFrame.this);
diff --git a/src/main/java/org/codehaus/groovy/GroovyBugError.java b/src/main/java/org/codehaus/groovy/GroovyBugError.java
index d234bb5..c1bee14 100644
--- a/src/main/java/org/codehaus/groovy/GroovyBugError.java
+++ b/src/main/java/org/codehaus/groovy/GroovyBugError.java
@@ -79,6 +79,7 @@ public class GroovyBugError extends AssertionError {
      *
      * @return the detail message string of this error.
      */
+    @Override
     public String getMessage() {
         if (message != null) {
             return "BUG! " + message;
@@ -87,6 +88,7 @@ public class GroovyBugError extends AssertionError {
         }
     }
 
+    @Override
     public Throwable getCause() {
         return this.exception;
     }
diff --git a/src/main/java/org/codehaus/groovy/GroovyException.java b/src/main/java/org/codehaus/groovy/GroovyException.java
index 61826f5..3358ccc 100644
--- a/src/main/java/org/codehaus/groovy/GroovyException.java
+++ b/src/main/java/org/codehaus/groovy/GroovyException.java
@@ -43,10 +43,12 @@ public class GroovyException extends Exception implements GroovyExceptionInterfa
         this.fatal = fatal;
     }
 
+    @Override
     public boolean isFatal() {
         return fatal;
     }
 
+    @Override
     public void setFatal(boolean fatal) {
         this.fatal = fatal;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassNode.java b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
index 6e8d714..b84b8d6 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassNode.java
@@ -1462,6 +1462,7 @@ public class ClassNode extends AnnotatedNode {
         return isInterface() && (getModifiers() & ACC_ANNOTATION) != 0;
     }
 
+    @Override
     public List<AnnotationNode> getAnnotations() {
         if (redirect != null)
             return redirect.getAnnotations();
@@ -1469,6 +1470,7 @@ public class ClassNode extends AnnotatedNode {
         return super.getAnnotations();
     }
 
+    @Override
     public List<AnnotationNode> getAnnotations(ClassNode type) {
         if (redirect != null)
             return redirect.getAnnotations(type);
diff --git a/src/main/java/org/codehaus/groovy/ast/DynamicVariable.java b/src/main/java/org/codehaus/groovy/ast/DynamicVariable.java
index f2d4550..197ebf2 100644
--- a/src/main/java/org/codehaus/groovy/ast/DynamicVariable.java
+++ b/src/main/java/org/codehaus/groovy/ast/DynamicVariable.java
@@ -33,42 +33,52 @@ public class DynamicVariable implements Variable {
         staticContext = context;
     }
 
+    @Override
     public ClassNode getType() {
         return ClassHelper.DYNAMIC_TYPE;
     }
 
+    @Override
     public String getName() {
         return name;
     }
 
+    @Override
     public Expression getInitialExpression() {
         return null;
     }
 
+    @Override
     public boolean hasInitialExpression() {
         return false;
     }
 
+    @Override
     public boolean isInStaticContext() {
         return staticContext;
     }
 
+    @Override
     public boolean isDynamicTyped() {
         return true;
     }
 
+    @Override
     public boolean isClosureSharedVariable() {
         return closureShare;
     }
 
+    @Override
     public void setClosureSharedVariable(boolean inClosure) {
         closureShare = inClosure;
     }
 
+    @Override
     public int getModifiers() {
         return 0;
     }
 
+    @Override
     public ClassNode getOriginType() {
         return getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java b/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
index 1da52be..1def401 100644
--- a/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/InnerClassNode.java
@@ -54,6 +54,7 @@ public class InnerClassNode extends ClassNode {
         outerClass.innerClasses.add(this);
     }
 
+    @Override
     public ClassNode getOuterClass() {
         return outerClass;
     }
@@ -69,6 +70,7 @@ public class InnerClassNode extends ClassNode {
     /**
      * @return the field node on the outer class or null if this is not an inner class
      */
+    @Override
     public FieldNode getOuterField(String name) {
         return outerClass.getDeclaredField(name);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/MethodCallTransformation.java b/src/main/java/org/codehaus/groovy/ast/MethodCallTransformation.java
index f07358f..112c064 100644
--- a/src/main/java/org/codehaus/groovy/ast/MethodCallTransformation.java
+++ b/src/main/java/org/codehaus/groovy/ast/MethodCallTransformation.java
@@ -25,6 +25,7 @@ import org.codehaus.groovy.transform.ASTTransformation;
 
 public abstract class MethodCallTransformation implements ASTTransformation {
 
+    @Override
     public void visit(ASTNode[] nodes, SourceUnit sourceUnit) {
 
         GroovyCodeVisitor transformer = getTransformer(nodes, sourceUnit);
diff --git a/src/main/java/org/codehaus/groovy/ast/MethodInvocationTrap.java b/src/main/java/org/codehaus/groovy/ast/MethodInvocationTrap.java
index 7909569..667436d 100644
--- a/src/main/java/org/codehaus/groovy/ast/MethodInvocationTrap.java
+++ b/src/main/java/org/codehaus/groovy/ast/MethodInvocationTrap.java
@@ -44,6 +44,7 @@ public abstract class MethodInvocationTrap extends CodeVisitorSupport {
      *
      * @param call the method call expression that may or may not be an AstBuilder 'from code' invocation.
      */
+    @Override
     public void visitMethodCallExpression(MethodCallExpression call) {
         boolean shouldContinueWalking = true;
 
diff --git a/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java b/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
index 39af998..99c0286 100644
--- a/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
+++ b/src/main/java/org/codehaus/groovy/ast/MixinASTTransformation.java
@@ -45,6 +45,7 @@ import static org.objectweb.asm.Opcodes.ACC_SYNTHETIC;
 public class MixinASTTransformation extends AbstractASTTransformation {
     private static final ClassNode MY_TYPE = make(Mixin.class);
 
+    @Override
     public void visit(ASTNode[] nodes, SourceUnit source) {
         init(nodes, source);
         AnnotationNode node = (AnnotationNode) nodes[0];
diff --git a/src/main/java/org/codehaus/groovy/ast/PackageNode.java b/src/main/java/org/codehaus/groovy/ast/PackageNode.java
index 097c7f9..d93d73b 100644
--- a/src/main/java/org/codehaus/groovy/ast/PackageNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/PackageNode.java
@@ -35,10 +35,12 @@ public class PackageNode extends AnnotatedNode {
     /**
      * @return the text display of this package definition
      */
+    @Override
     public String getText() {
         return "package " + name;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
     }
 }
diff --git a/src/main/java/org/codehaus/groovy/ast/Parameter.java b/src/main/java/org/codehaus/groovy/ast/Parameter.java
index ce49781..79d6c07 100644
--- a/src/main/java/org/codehaus/groovy/ast/Parameter.java
+++ b/src/main/java/org/codehaus/groovy/ast/Parameter.java
@@ -55,10 +55,12 @@ public class Parameter extends AnnotatedNode implements Variable {
         return super.toString() + "[name:" + name + ((type == null) ? "" : " type: " + type.getName()) + ", hasDefaultValue: " + this.hasInitialExpression() + "]";
     }
 
+    @Override
     public String getName() {
         return name;
     }
 
+    @Override
     public ClassNode getType() {
         return type;
     }
@@ -68,6 +70,7 @@ public class Parameter extends AnnotatedNode implements Variable {
         dynamicTyped = (dynamicTyped || type == ClassHelper.DYNAMIC_TYPE);
     }
 
+    @Override
     public boolean hasInitialExpression() {
         return this.hasDefaultValue;
     }
@@ -76,6 +79,7 @@ public class Parameter extends AnnotatedNode implements Variable {
      * @return the default value expression for this parameter or null if
      * no default value is specified
      */
+    @Override
     public Expression getInitialExpression() {
         return defaultValue;
     }
@@ -85,6 +89,7 @@ public class Parameter extends AnnotatedNode implements Variable {
         hasDefaultValue = defaultValue != null;
     }
 
+    @Override
     public boolean isInStaticContext() {
         return inStaticContext;
     }
@@ -93,22 +98,27 @@ public class Parameter extends AnnotatedNode implements Variable {
         this.inStaticContext = inStaticContext;
     }
 
+    @Override
     public boolean isDynamicTyped() {
         return dynamicTyped;
     }
 
+    @Override
     public boolean isClosureSharedVariable() {
         return closureShare;
     }
 
+    @Override
     public void setClosureSharedVariable(boolean inClosure) {
         closureShare = inClosure;
     }
 
+    @Override
     public int getModifiers() {
         return modifiers;
     }
 
+    @Override
     public ClassNode getOriginType() {
         return originType;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/PropertyNode.java b/src/main/java/org/codehaus/groovy/ast/PropertyNode.java
index e96e216..cc9a731 100644
--- a/src/main/java/org/codehaus/groovy/ast/PropertyNode.java
+++ b/src/main/java/org/codehaus/groovy/ast/PropertyNode.java
@@ -59,6 +59,7 @@ public class PropertyNode extends AnnotatedNode implements Variable {
         return getterBlock;
     }
 
+    @Override
     public Expression getInitialExpression() {
         return field.getInitialExpression();
     }
@@ -114,10 +115,12 @@ public class PropertyNode extends AnnotatedNode implements Variable {
         this.setterName = setterName;
     }
 
+    @Override
     public int getModifiers() {
         return modifiers;
     }
 
+    @Override
     public String getName() {
         return field.getName();
     }
@@ -126,6 +129,7 @@ public class PropertyNode extends AnnotatedNode implements Variable {
         return setterBlock;
     }
 
+    @Override
     public ClassNode getType() {
         return field.getType();
     }
@@ -154,18 +158,22 @@ public class PropertyNode extends AnnotatedNode implements Variable {
         return (modifiers & ACC_STATIC) != 0;
     }
 
+    @Override
     public boolean hasInitialExpression() {
         return field.hasInitialExpression();
     }
 
+    @Override
     public boolean isInStaticContext() {
         return field.isInStaticContext();
     }
 
+    @Override
     public boolean isDynamicTyped() {
         return field.isDynamicTyped();
     }
 
+    @Override
     public boolean isClosureSharedVariable() {
         return false;
     }
@@ -173,11 +181,13 @@ public class PropertyNode extends AnnotatedNode implements Variable {
     /**
       * @deprecated not used anymore, has no effect
       */
+    @Override
     @Deprecated
     public void setClosureSharedVariable(boolean inClosure) {
         // unused
     }
 
+    @Override
     public ClassNode getOriginType() {
         return getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/AnnotationConstantExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/AnnotationConstantExpression.java
index 50f20a7..ba4eaf0 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/AnnotationConstantExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/AnnotationConstantExpression.java
@@ -33,6 +33,7 @@ public class AnnotationConstantExpression extends ConstantExpression {
         setType(node.getClassNode());
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         AnnotationNode node = (AnnotationNode) getValue();
         Map<String, Expression> attrs = node.getMembers();
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java
index a70fbed..4a9eb35 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ArgumentListExpression.java
@@ -62,6 +62,7 @@ public class ArgumentListExpression extends TupleExpression {
         super(expr1, expr2, expr3);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new ArgumentListExpression(transformExpressions(getExpressions(), transformer));
         ret.setSourcePosition(this);
@@ -69,6 +70,7 @@ public class ArgumentListExpression extends TupleExpression {
         return ret;
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitArgumentlistExpression(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ArrayExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ArrayExpression.java
index cc22993..49c4b17 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ArrayExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ArrayExpression.java
@@ -98,6 +98,7 @@ public class ArrayExpression extends Expression {
         return initExpressions;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitArrayExpression(this);
     }
@@ -106,6 +107,7 @@ public class ArrayExpression extends Expression {
         return false;
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         List<Expression> exprList = transformExpressions(initExpressions, transformer);
         List<Expression> sizes = null;
@@ -129,6 +131,7 @@ public class ArrayExpression extends Expression {
         return elementType;
     }
 
+    @Override
     public String getText() {
         return "[" + formatInitExpressions() + "]";
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/BinaryExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/BinaryExpression.java
index 218260f..78f0405 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/BinaryExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/BinaryExpression.java
@@ -54,10 +54,12 @@ public class BinaryExpression extends Expression {
         return super.toString() + "[" + leftExpression + operation + rightExpression + "]";
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitBinaryExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new BinaryExpression(transformer.transform(leftExpression), operation, transformer.transform(rightExpression), safe);
         ret.setSourcePosition(this);
@@ -85,6 +87,7 @@ public class BinaryExpression extends Expression {
         return rightExpression;
     }
 
+    @Override
     public String getText() {
         if (operation.getType() == Types.LEFT_SQUARE_BRACKET) {
             return leftExpression.getText() + (safe ? "?" : "") + "[" + rightExpression.getText() + "]";
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/BitwiseNegationExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/BitwiseNegationExpression.java
index 5887281..2f54b7d 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/BitwiseNegationExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/BitwiseNegationExpression.java
@@ -33,10 +33,12 @@ public class BitwiseNegationExpression extends Expression {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitBitwiseNegationExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new BitwiseNegationExpression(transformer.transform(expression));
         ret.setSourcePosition(this);
@@ -44,10 +46,12 @@ public class BitwiseNegationExpression extends Expression {
         return ret;
     }
 
+    @Override
     public String getText() {
         return expression.getText();
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/BooleanExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/BooleanExpression.java
index bde8320..28d9362 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/BooleanExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/BooleanExpression.java
@@ -36,10 +36,12 @@ public class BooleanExpression extends Expression {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitBooleanExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new BooleanExpression(transformer.transform(expression));
         ret.setSourcePosition(this);
@@ -47,6 +49,7 @@ public class BooleanExpression extends Expression {
         return ret;
     }
     
+    @Override
     public String getText() {
         return expression.getText();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ClassExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ClassExpression.java
index c6ff02e..68faaa2 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ClassExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ClassExpression.java
@@ -31,14 +31,17 @@ public class ClassExpression extends Expression {
         super.setType(type);
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitClassExpression(this);
     }
     
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         return this;
     }
     
+    @Override
     public String getText() {
         return getType().getName();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ClosureExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ClosureExpression.java
index d09f58a..19ea72d 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ClosureExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ClosureExpression.java
@@ -42,10 +42,12 @@ public class ClosureExpression extends Expression {
         setType(ClassHelper.CLOSURE_TYPE.getPlainNodeReference());
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitClosureExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         return this;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
index 0562944..c017f48 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ClosureListExpression.java
@@ -48,10 +48,12 @@ public class ClosureListExpression extends ListExpression {
         this(new ArrayList<Expression>(3));
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitClosureListExpression(this);
     }
     
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new ClosureListExpression(transformExpressions(getExpressions(), transformer));
         ret.setSourcePosition(this);
@@ -67,6 +69,7 @@ public class ClosureListExpression extends ListExpression {
         return scope;
     }
     
+    @Override
     public String getText() {
         StringBuilder buffer = new StringBuilder("(");
         boolean first = true;
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ConstantExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ConstantExpression.java
index d958795..3576bca 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ConstantExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ConstantExpression.java
@@ -76,10 +76,12 @@ public class ConstantExpression extends Expression {
         return super.toString() + "[" + value + "]";
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitConstantExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         return this;
     }
@@ -91,6 +93,7 @@ public class ConstantExpression extends Expression {
         return value;
     }
 
+    @Override
     public String getText() {
         return (value == null ? "null" : value.toString());
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ConstructorCallExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ConstructorCallExpression.java
index 712c55d..51adf72 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ConstructorCallExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ConstructorCallExpression.java
@@ -40,10 +40,12 @@ public class ConstructorCallExpression extends Expression implements MethodCall
         }
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitConstructorCallExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         ConstructorCallExpression answer = new ConstructorCallExpression(getType(), transformer.transform(arguments));
         answer.setUsingAnonymousInnerClass(isUsingAnonymousInnerClass());
@@ -52,18 +54,22 @@ public class ConstructorCallExpression extends Expression implements MethodCall
         return answer;
     }
 
+    @Override
     public ASTNode getReceiver() {
         return null;
     }
 
+    @Override
     public String getMethodAsString() {
         return "<init>";
     }
 
+    @Override
     public Expression getArguments() {
         return arguments;
     }
 
+    @Override
     public String getText() {
         String text;
         if (isSuperCall()) {
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ElvisOperatorExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ElvisOperatorExpression.java
index f6c4fcf..cd40f0a 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ElvisOperatorExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ElvisOperatorExpression.java
@@ -55,10 +55,12 @@ public class ElvisOperatorExpression extends TernaryExpression {
        return be;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitShortTernaryExpression(this);
     }
     
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new ElvisOperatorExpression(
                 transformer.transform(getTrueExpression()),
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
index e46235e..5a88a87 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/GStringExpression.java
@@ -48,10 +48,12 @@ public class GStringExpression extends Expression {
         super.setType(ClassHelper.GSTRING_TYPE);
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitGStringExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new GStringExpression(
                 verbatimText,
@@ -66,6 +68,7 @@ public class GStringExpression extends Expression {
         return super.toString() + "[strings: " + strings + " values: " + values + "]";
     }
 
+    @Override
     public String getText() {
         return verbatimText;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/LambdaExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/LambdaExpression.java
index 64cb989..86a1446 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/LambdaExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/LambdaExpression.java
@@ -41,6 +41,7 @@ public class LambdaExpression extends ClosureExpression {
         super(parameters, code);
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitLambdaExpression(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
index 070a8e3..4b21441 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/ListExpression.java
@@ -58,10 +58,12 @@ public class ListExpression extends Expression {
         return wrapped;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitListExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new ListExpression(transformExpressions(getExpressions(), transformer));
         ret.setSourcePosition(this);
@@ -73,6 +75,7 @@ public class ListExpression extends Expression {
         return expressions.get(i);
     }
 
+    @Override
     public String getText() {
         StringBuilder buffer = new StringBuilder("[");
         boolean first = true;
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/MapEntryExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/MapEntryExpression.java
index 9733637..60ce946 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/MapEntryExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/MapEntryExpression.java
@@ -33,10 +33,12 @@ public class MapEntryExpression extends Expression {
         this.valueExpression = valueExpression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitMapEntryExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new MapEntryExpression(transformer.transform(keyExpression), transformer.transform(valueExpression));
         ret.setSourcePosition(this);
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
index 5ef2f9e..98bfd68 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/MapExpression.java
@@ -49,6 +49,7 @@ public class MapExpression extends Expression {
         return mapEntryExpressions;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitMapExpression(this);
     }
@@ -57,6 +58,7 @@ public class MapExpression extends Expression {
         return false;
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new MapExpression(transformExpressions(getMapEntryExpressions(), transformer, MapEntryExpression.class));
         ret.setSourcePosition(this);
@@ -68,6 +70,7 @@ public class MapExpression extends Expression {
         return super.toString() + mapEntryExpressions;
     }
 
+    @Override
     public String getText() {
         StringBuilder sb = new StringBuilder(32);
         sb.append("[");
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/MethodCallExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/MethodCallExpression.java
index 4f8583c..c9d8239 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/MethodCallExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/MethodCallExpression.java
@@ -72,10 +72,12 @@ public class MethodCallExpression extends Expression implements MethodCall {
         // (in bytecode after call: aconst_null, areturn)
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitMethodCallExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         MethodCallExpression answer =
             new MethodCallExpression(transformer.transform(objectExpression), transformer.transform(method), transformer.transform(arguments));
@@ -89,6 +91,7 @@ public class MethodCallExpression extends Expression implements MethodCall {
         return answer;
     }
 
+    @Override
     public Expression getArguments() {
         return arguments;
     }
@@ -114,6 +117,7 @@ public class MethodCallExpression extends Expression implements MethodCall {
      * This method returns the method name as String if it is no dynamic
      * calculated method name, but a constant.
      */
+    @Override
     public String getMethodAsString() {
         if (!(method instanceof ConstantExpression)) return null;
         ConstantExpression constant = (ConstantExpression) method;
@@ -128,10 +132,12 @@ public class MethodCallExpression extends Expression implements MethodCall {
       this.objectExpression = objectExpression;
     }
 
+    @Override
     public ASTNode getReceiver() {
         return getObjectExpression();
     }
 
+    @Override
     public String getText() {
         String object = objectExpression.getText();
         String meth = method.getText();
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/MethodPointerExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/MethodPointerExpression.java
index 5928ae0..ae7edd8 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/MethodPointerExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/MethodPointerExpression.java
@@ -51,10 +51,12 @@ public class MethodPointerExpression extends Expression {
         return methodName;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitMethodPointerExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret;
         Expression mname = transformer.transform(methodName);
@@ -68,6 +70,7 @@ public class MethodPointerExpression extends Expression {
         return ret;
     }
 
+    @Override
     public String getText() {
         if (expression == null) {
             return "&" + methodName;
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/NamedArgumentListExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/NamedArgumentListExpression.java
index 6cd7ac5..1c52b8e 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/NamedArgumentListExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/NamedArgumentListExpression.java
@@ -32,6 +32,7 @@ public class NamedArgumentListExpression extends MapExpression {
         super(mapEntryExpressions);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new NamedArgumentListExpression(
             transformExpressions(getMapEntryExpressions(), transformer, MapEntryExpression.class)); 
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/NotExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/NotExpression.java
index f404765..6f990e5 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/NotExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/NotExpression.java
@@ -26,6 +26,7 @@ public class NotExpression extends BooleanExpression {
         super(expression);
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitNotExpression(this);
     }
@@ -34,6 +35,7 @@ public class NotExpression extends BooleanExpression {
         return false;
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new NotExpression(transformer.transform(getExpression()));
         ret.setSourcePosition(this);
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/PostfixExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/PostfixExpression.java
index 8caabab..f96714e 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/PostfixExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/PostfixExpression.java
@@ -39,10 +39,12 @@ public class PostfixExpression extends Expression {
         return super.toString() + "[" + expression + operation + "]";
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitPostfixExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new PostfixExpression(transformer.transform(expression), operation); 
         ret.setSourcePosition(this);
@@ -62,10 +64,12 @@ public class PostfixExpression extends Expression {
         return expression;
     }
 
+    @Override
     public String getText() {
         return "(" + expression.getText() + operation.getText() + ")";
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/PrefixExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/PrefixExpression.java
index b4be8ab..4c73227 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/PrefixExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/PrefixExpression.java
@@ -39,10 +39,12 @@ public class PrefixExpression extends Expression {
         return super.toString() + "[" + operation + expression + "]";
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitPrefixExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new PrefixExpression(operation, transformer.transform(expression)); 
         ret.setSourcePosition(this);
@@ -62,10 +64,12 @@ public class PrefixExpression extends Expression {
         return expression;
     }
 
+    @Override
     public String getText() {
         return "(" + operation.getText() + expression.getText() + ")";
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/RangeExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/RangeExpression.java
index 983b69e..04a4923 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/RangeExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/RangeExpression.java
@@ -39,10 +39,12 @@ public class RangeExpression extends Expression {
         setType(ClassHelper.RANGE_TYPE);
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitRangeExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new RangeExpression(transformer.transform(from), transformer.transform(to), inclusive);
         ret.setSourcePosition(this);
@@ -62,6 +64,7 @@ public class RangeExpression extends Expression {
         return inclusive;
     }
 
+    @Override
     public String getText() {
         return "(" + from.getText() +
                (!isInclusive()? "..<" : ".." ) +
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/SpreadExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/SpreadExpression.java
index 43a8926..25af602 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/SpreadExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/SpreadExpression.java
@@ -37,10 +37,12 @@ public class SpreadExpression extends Expression {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitSpreadExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new SpreadExpression(transformer.transform(expression));
         ret.setSourcePosition(this);
@@ -48,10 +50,12 @@ public class SpreadExpression extends Expression {
         return ret;
     }
 
+    @Override
     public String getText() {
         return "*" + expression.getText();
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/SpreadMapExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/SpreadMapExpression.java
index ea6318b..a548ee0 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/SpreadMapExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/SpreadMapExpression.java
@@ -39,10 +39,12 @@ public class SpreadMapExpression extends Expression {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitSpreadMapExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new SpreadMapExpression(transformer.transform(expression));
         ret.setSourcePosition(this);
@@ -50,10 +52,12 @@ public class SpreadMapExpression extends Expression {
         return ret;
     }
 
+    @Override
     public String getText() {
         return "*:" + expression.getText();
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/StaticMethodCallExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/StaticMethodCallExpression.java
index 020274c..1d0bea4 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/StaticMethodCallExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/StaticMethodCallExpression.java
@@ -39,10 +39,12 @@ public class StaticMethodCallExpression extends Expression implements MethodCall
         this.arguments = arguments;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitStaticMethodCallExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new StaticMethodCallExpression(getOwnerType(), method, transformer.transform(arguments));
         ret.setSourcePosition(this);
@@ -50,14 +52,17 @@ public class StaticMethodCallExpression extends Expression implements MethodCall
         return ret;
     }
 
+    @Override
     public ASTNode getReceiver() {
         return ownerType;
     }
 
+    @Override
     public String getMethodAsString() {
         return method;
     }
 
+    @Override
     public Expression getArguments() {
         return arguments;
     }
@@ -66,6 +71,7 @@ public class StaticMethodCallExpression extends Expression implements MethodCall
         return method;
     }
 
+    @Override
     public String getText() {
         return getOwnerType().getName() + "." + method + arguments.getText();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/TernaryExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/TernaryExpression.java
index 6a060dc..0a2d458 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/TernaryExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/TernaryExpression.java
@@ -39,10 +39,12 @@ public class TernaryExpression extends Expression {
         this.trueExpression = trueExpression;
         this.falseExpression = falseExpression;
     }
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitTernaryExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new TernaryExpression(
                 (BooleanExpression) transformer.transform(booleanExpression),
@@ -69,6 +71,7 @@ public class TernaryExpression extends Expression {
         return trueExpression;
     }
 
+    @Override
     public String getText() {
         return "("
             + booleanExpression.getText()
@@ -78,6 +81,7 @@ public class TernaryExpression extends Expression {
             + falseExpression.getText();
     }
 
+    @Override
     public ClassNode getType() {
         return ClassHelper.OBJECT_TYPE;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
index 317d82f..74a858d 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/TupleExpression.java
@@ -80,15 +80,18 @@ public class TupleExpression extends Expression implements Iterable<Expression>
         // see also org.codehaus.groovy.ast.expr.MethodCallExpression.NO_ARGUMENTS
     }
 
+    @Override
     public Iterator<Expression> iterator() {
         // TODO: return getExpressions().iterator();
         return Collections.unmodifiableList(expressions).iterator();
     }
 
+    @Override
     public void visit(final GroovyCodeVisitor visitor) {
         visitor.visitTupleExpression(this);
     }
 
+    @Override
     public Expression transformExpression(final ExpressionTransformer transformer) {
         Expression ret = new TupleExpression(transformExpressions(getExpressions(), transformer));
         ret.setSourcePosition(this);
@@ -96,6 +99,7 @@ public class TupleExpression extends Expression implements Iterable<Expression>
         return ret;
     }
 
+    @Override
     public String getText() {
         StringBuilder buffer = new StringBuilder("(");
         boolean first = true;
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/UnaryMinusExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/UnaryMinusExpression.java
index 8e040fc..7dedb4a 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/UnaryMinusExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/UnaryMinusExpression.java
@@ -33,10 +33,12 @@ public class UnaryMinusExpression extends Expression {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitUnaryMinusExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new UnaryMinusExpression(transformer.transform(expression));
         ret.setSourcePosition(this);
@@ -44,10 +46,12 @@ public class UnaryMinusExpression extends Expression {
         return ret;
     }
 
+    @Override
     public String getText() {
         return expression.getText();
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/UnaryPlusExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/UnaryPlusExpression.java
index dc18eb2..f5d4e9d 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/UnaryPlusExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/UnaryPlusExpression.java
@@ -33,10 +33,12 @@ public class UnaryPlusExpression extends Expression {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitUnaryPlusExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         Expression ret = new UnaryPlusExpression(transformer.transform(expression));
         ret.setSourcePosition(this);
@@ -44,10 +46,12 @@ public class UnaryPlusExpression extends Expression {
         return ret;
     }
 
+    @Override
     public String getText() {
         return expression.getText();
     }
 
+    @Override
     public ClassNode getType() {
         return expression.getType();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/expr/VariableExpression.java b/src/main/java/org/codehaus/groovy/ast/expr/VariableExpression.java
index 9043f7a..de0ecb2 100644
--- a/src/main/java/org/codehaus/groovy/ast/expr/VariableExpression.java
+++ b/src/main/java/org/codehaus/groovy/ast/expr/VariableExpression.java
@@ -66,18 +66,22 @@ public class VariableExpression extends Expression implements Variable {
         setModifiers(variable.getModifiers());
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitVariableExpression(this);
     }
 
+    @Override
     public Expression transformExpression(ExpressionTransformer transformer) {
         return this;
     }
 
+    @Override
     public String getText() {
         return variable;
     }
     
+    @Override
     public String getName() {
         return variable;
     }
@@ -86,14 +90,17 @@ public class VariableExpression extends Expression implements Variable {
         return super.toString() + "[variable: " + variable + (this.isDynamicTyped() ? "" : " type: " + getType()) + "]";
     }
 
+    @Override
     public Expression getInitialExpression() {
         return null;
     }
 
+    @Override
     public boolean hasInitialExpression() {
         return false;
     }
     
+    @Override
     public boolean isInStaticContext() {
         if (accessedVariable!=null && accessedVariable!=this) return accessedVariable.isInStaticContext();
         return inStaticContext;
@@ -110,11 +117,13 @@ public class VariableExpression extends Expression implements Variable {
      * the {@link #getAccessedVariable() accessed variable}
      * @param cn the type to be set on this variable
      */
+    @Override
     public void setType(ClassNode cn){
         super.setType(cn);
         isDynamicTyped |= ClassHelper.DYNAMIC_TYPE==cn;
     }
     
+    @Override
     public boolean isDynamicTyped() {
         if (accessedVariable!=null && accessedVariable!=this) return accessedVariable.isDynamicTyped();
         return isDynamicTyped;
@@ -129,6 +138,7 @@ public class VariableExpression extends Expression implements Variable {
      * The "str" variable is closure shared.
      * @return true if this variable is used in a closure
      */
+    @Override
     public boolean isClosureSharedVariable() {
         if (accessedVariable!=null && accessedVariable!=this) return accessedVariable.isClosureSharedVariable();
         return closureShare;
@@ -143,10 +153,12 @@ public class VariableExpression extends Expression implements Variable {
      * accessed variable "str" which must have the closure shared flag set.
      * @param inClosure tells if this variable is later referenced in a closure
      */
+    @Override
     public void setClosureSharedVariable(boolean inClosure) {
         closureShare = inClosure;        
     }
 
+    @Override
     public int getModifiers() {
         return modifiers;
     }
@@ -168,6 +180,7 @@ public class VariableExpression extends Expression implements Variable {
         return useRef;
     }
     
+    @Override
     public ClassNode getType() {
         if (accessedVariable!=null && accessedVariable!=this) return accessedVariable.getType();
         return super.getType();
@@ -178,6 +191,7 @@ public class VariableExpression extends Expression implements Variable {
      * {@link #getType()} may return a boxed type while this method would return the primitive type.
      * @return the type which was used to define this variable expression
      */
+    @Override
     public ClassNode getOriginType() {
         if (accessedVariable!=null && accessedVariable!=this) return accessedVariable.getOriginType();
         return originType;
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/AssertStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/AssertStatement.java
index 8a3e6c0..2e11a1b 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/AssertStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/AssertStatement.java
@@ -45,6 +45,7 @@ public class AssertStatement extends Statement {
         this.messageExpression = messageExpression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitAssertStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
index d71e1e2..9710a5b 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/BlockStatement.java
@@ -65,6 +65,7 @@ public class BlockStatement extends Statement {
         this.scope = scope;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitBlockStatement(this);
     }
@@ -85,6 +86,7 @@ public class BlockStatement extends Statement {
         return super.toString() + statements;
     }
 
+    @Override
     public String getText() {
         StringBuilder buffer = new StringBuilder("{ ");
         boolean first = true;
@@ -101,6 +103,7 @@ public class BlockStatement extends Statement {
         return buffer.toString();
     }
 
+    @Override
     public boolean isEmpty() {
         return statements.isEmpty();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/BreakStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/BreakStatement.java
index ded97c2..e7c1f7d 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/BreakStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/BreakStatement.java
@@ -39,6 +39,7 @@ public class BreakStatement extends Statement {
         return label;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitBreakStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/CaseStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/CaseStatement.java
index ad69a55..dcdfefa 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/CaseStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/CaseStatement.java
@@ -51,6 +51,7 @@ public class CaseStatement extends Statement {
         expression=e;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitCaseStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/CatchStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/CatchStatement.java
index ce0fe17..ac5f2b4 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/CatchStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/CatchStatement.java
@@ -37,6 +37,7 @@ public class CatchStatement extends Statement {
         this.code = code;
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitCatchStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/ContinueStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/ContinueStatement.java
index d261b5a..761323f 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/ContinueStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/ContinueStatement.java
@@ -40,6 +40,7 @@ public class ContinueStatement extends Statement {
         return label;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitContinueStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/DoWhileStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/DoWhileStatement.java
index 77ae235..427a2b9 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/DoWhileStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/DoWhileStatement.java
@@ -35,6 +35,7 @@ public class DoWhileStatement extends Statement implements LoopingStatement {
         this.loopBlock = loopBlock;
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitDoWhileLoop(this);
     }
@@ -43,6 +44,7 @@ public class DoWhileStatement extends Statement implements LoopingStatement {
         return booleanExpression;
     }
 
+    @Override
     public Statement getLoopBlock() {
         return loopBlock;
     }
@@ -50,6 +52,7 @@ public class DoWhileStatement extends Statement implements LoopingStatement {
         this.booleanExpression = booleanExpression;
     }
 
+    @Override
     public void setLoopBlock(Statement loopBlock) {
         this.loopBlock = loopBlock;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/ExpressionStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/ExpressionStatement.java
index edb82f3..0598773 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/ExpressionStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/ExpressionStatement.java
@@ -36,6 +36,7 @@ public class ExpressionStatement extends Statement {
         this.expression = expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitExpressionStatement(this);
     }
@@ -48,6 +49,7 @@ public class ExpressionStatement extends Statement {
         this.expression = expression;
     }
 
+    @Override
     public String getText() {
         return expression.getText();
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/ForStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/ForStatement.java
index 0e8b45f..887389f 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/ForStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/ForStatement.java
@@ -43,6 +43,7 @@ public class ForStatement extends Statement implements LoopingStatement {
         this.loopBlock = loopBlock;
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitForLoop(this);
     }
@@ -51,6 +52,7 @@ public class ForStatement extends Statement implements LoopingStatement {
         return collectionExpression;
     }
 
+    @Override
     public Statement getLoopBlock() {
         return loopBlock;
     }
@@ -75,6 +77,7 @@ public class ForStatement extends Statement implements LoopingStatement {
         return scope;
     }
 
+    @Override
     public void setLoopBlock(Statement loopBlock) {
         this.loopBlock = loopBlock;
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/IfStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/IfStatement.java
index 94629d9..924c4ce 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/IfStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/IfStatement.java
@@ -37,6 +37,7 @@ public class IfStatement extends Statement {
         this.elseBlock = elseBlock;
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitIfElse(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
index 52f1d41..6c1c561 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/SwitchStatement.java
@@ -49,6 +49,7 @@ public class SwitchStatement extends Statement {
         this.defaultStatement = defaultStatement;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitSwitch(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/SynchronizedStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/SynchronizedStatement.java
index 739cb11..8179649 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/SynchronizedStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/SynchronizedStatement.java
@@ -47,6 +47,7 @@ public class SynchronizedStatement extends Statement {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitSynchronizedStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/ThrowStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/ThrowStatement.java
index 4346086..3cb4975 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/ThrowStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/ThrowStatement.java
@@ -37,6 +37,7 @@ public class ThrowStatement extends Statement {
         return expression;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitThrowStatement(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
index e21b3f9..e1c89e4 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/TryCatchStatement.java
@@ -43,6 +43,7 @@ public class TryCatchStatement extends Statement {
         this.finallyStatement = finallyStatement;
     }
     
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitTryCatchFinally(this);
     }
diff --git a/src/main/java/org/codehaus/groovy/ast/stmt/WhileStatement.java b/src/main/java/org/codehaus/groovy/ast/stmt/WhileStatement.java
index 38e004e..b8e9ada 100644
--- a/src/main/java/org/codehaus/groovy/ast/stmt/WhileStatement.java
+++ b/src/main/java/org/codehaus/groovy/ast/stmt/WhileStatement.java
@@ -35,6 +35,7 @@ public class WhileStatement extends Statement implements LoopingStatement {
         this.loopBlock = loopBlock;
     }
 
+    @Override
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitWhileLoop(this);
     }
@@ -43,6 +44,7 @@ public class WhileStatement extends Statement implements LoopingStatement {
         return booleanExpression;
     }
 
+    @Override
     public Statement getLoopBlock() {
         return loopBlock;
     }
@@ -51,6 +53,7 @@ public class WhileStatement extends Statement implements LoopingStatement {
         this.booleanExpression = booleanExpression;
     }
 
+    @Override
     public void setLoopBlock(Statement loopBlock) {
         this.loopBlock = loopBlock;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 4513f40..6d41bd3 100644
--- a/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -1756,6 +1756,7 @@ public class AsmClassGenerator extends ClassGenerator {
         final Label tableEnd = new Label();
         final Label[] labels = new Label[size];
         instructions.add(new BytecodeInstruction() {
+            @Override
             public void visit(MethodVisitor mv) {
                 mv.visitVarInsn(ILOAD, 1);
                 mv.visitTableSwitchInsn(0, size - 1, dflt, labels);
@@ -1768,6 +1769,7 @@ public class AsmClassGenerator extends ClassGenerator {
             Expression expr = expressions.get(i);
             labels[i] = label;
             instructions.add(new BytecodeInstruction() {
+                @Override
                 public void visit(MethodVisitor mv) {
                     mv.visitLabel(label);
                     // expressions will leave a value on stack, so need to pop the alibi null
@@ -1776,6 +1778,7 @@ public class AsmClassGenerator extends ClassGenerator {
             });
             instructions.add(expr);
             instructions.add(new BytecodeInstruction() {
+                @Override
                 public void visit(MethodVisitor mv) {
                     mv.visitJumpInsn(GOTO, tableEnd);
                 }
@@ -1784,6 +1787,7 @@ public class AsmClassGenerator extends ClassGenerator {
 
         // default case
         instructions.add(new BytecodeInstruction() {
+            @Override
             public void visit(MethodVisitor mv) {
                 mv.visitLabel(dflt);
             }
@@ -1795,6 +1799,7 @@ public class AsmClassGenerator extends ClassGenerator {
 
         // return
         instructions.add(new BytecodeInstruction() {
+            @Override
             public void visit(MethodVisitor mv) {
                 mv.visitLabel(tableEnd);
                 mv.visitInsn(ARETURN);
diff --git a/src/main/java/org/codehaus/groovy/classgen/BytecodeExpression.java b/src/main/java/org/codehaus/groovy/classgen/BytecodeExpression.java
index f228412..282e771 100644
--- a/src/main/java/org/codehaus/groovy/classgen/BytecodeExpression.java
+++ b/src/main/java/org/codehaus/groovy/classgen/BytecodeExpression.java
@@ -30,6 +30,7 @@ import org.objectweb.asm.MethodVisitor;
 public abstract class BytecodeExpression extends Expression {
 
     public static final BytecodeExpression NOP = new BytecodeExpression() {
+        @Override
         public void visit(final MethodVisitor visitor) {
             // do nothing
         }
@@ -44,10 +45,12 @@ public abstract class BytecodeExpression extends Expression {
 
     public abstract void visit(MethodVisitor visitor);
 
+    @Override
     public void visit(final GroovyCodeVisitor visitor) {
         visitor.visitBytecodeExpression(this);
     }
 
+    @Override
     public Expression transformExpression(final ExpressionTransformer transformer) {
         return this;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java b/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
index ed8f97b..41f43a1 100644
--- a/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
+++ b/src/main/java/org/codehaus/groovy/classgen/BytecodeSequence.java
@@ -74,6 +74,7 @@ public class BytecodeSequence extends Statement {
      *
      * @see ClassGenerator
      */
+    @Override
     public void visit(final GroovyCodeVisitor visitor) {
         if (visitor instanceof ClassGenerator) {
             ((ClassGenerator) visitor).visitBytecodeSequence(this);
diff --git a/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java b/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
index ef4d13e..a199fae 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ClassCompletionVerifier.java
@@ -100,6 +100,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         return currentClass;
     }
 
+    @Override
     public void visitClass(ClassNode node) {
         ClassNode oldClass = currentClass;
         currentClass = node;
@@ -427,10 +428,12 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         return true;
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return source;
     }
 
+    @Override
     public void visitMethod(MethodNode node) {
         inConstructor = false;
         inStaticConstructor = node.isStaticConstructor();
@@ -518,6 +521,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         }
     }
 
+    @Override
     public void visitField(FieldNode node) {
         if (currentClass.getDeclaredField(node.getName()) != node) {
             addError("The " + getDescription(node) + " is declared multiple times.", node);
@@ -531,6 +535,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         super.visitField(node);
     }
 
+    @Override
     public void visitProperty(PropertyNode node) {
         checkDuplicateProperties(node);
         checkGenericsUsage(node, node.getType());
@@ -568,6 +573,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         }
     }
 
+    @Override
     public void visitBinaryExpression(BinaryExpression expression) {
         if (expression.getOperation().getType() == Types.LEFT_SQUARE_BRACKET &&
                 expression.getRightExpression() instanceof MapEntryExpression) {
@@ -625,6 +631,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         }
     }
 
+    @Override
     public void visitConstructor(ConstructorNode node) {
         inConstructor = true;
         inStaticConstructor = node.isStaticConstructor();
@@ -632,6 +639,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         super.visitConstructor(node);
     }
 
+    @Override
     public void visitCatchStatement(CatchStatement cs) {
         if (!(cs.getExceptionType().isDerivedFrom(ClassHelper.make(Throwable.class)))) {
             addError("Catch statement parameter type is not a subclass of Throwable.", cs);
@@ -639,6 +647,7 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         super.visitCatchStatement(cs);
     }
 
+    @Override
     public void visitMethodCallExpression(MethodCallExpression mce) {
         super.visitMethodCallExpression(mce);
         Expression aexp = mce.getArguments();
@@ -682,11 +691,13 @@ public class ClassCompletionVerifier extends ClassCodeVisitorSupport {
         addError("Invalid use of declaration inside method call.", exp);
     }
 
+    @Override
     public void visitConstantExpression(ConstantExpression expression) {
         super.visitConstantExpression(expression);
         checkStringExceedingMaximumLength(expression);
     }
 
+    @Override
     public void visitGStringExpression(GStringExpression expression) {
         super.visitGStringExpression(expression);
         for (ConstantExpression ce : expression.getStrings()) {
diff --git a/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
index 304c024..e07437c 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ClassGenerator.java
@@ -36,6 +36,7 @@ public abstract class ClassGenerator extends ClassCodeVisitorSupport {
         return innerClasses;
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return null;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java b/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
index d6a095c..ba1a22e 100644
--- a/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
+++ b/src/main/java/org/codehaus/groovy/classgen/DummyClassGenerator.java
@@ -67,6 +67,7 @@ public class DummyClassGenerator extends ClassGenerator {
 
     // GroovyClassVisitor interface
     //-------------------------------------------------------------------------
+    @Override
     public void visitClass(ClassNode classNode) {
         try {
             this.classNode = classNode;
@@ -110,6 +111,7 @@ public class DummyClassGenerator extends ClassGenerator {
         }
     }
 
+    @Override
     public void visitConstructor(ConstructorNode node) {
 
         visitParameters(node, node.getParameters());
@@ -124,6 +126,7 @@ public class DummyClassGenerator extends ClassGenerator {
         mv.visitMaxs(0, 0);
     }
 
+    @Override
     public void visitMethod(MethodNode node) {
 
         visitParameters(node, node.getParameters());
@@ -140,6 +143,7 @@ public class DummyClassGenerator extends ClassGenerator {
         mv.visitMaxs(0, 0);
     }
 
+    @Override
     public void visitField(FieldNode fieldNode) {
 
         cv.visitField(
@@ -153,6 +157,7 @@ public class DummyClassGenerator extends ClassGenerator {
     /**
      * Creates a getter, setter and field
      */
+    @Override
     public void visitProperty(PropertyNode statement) {
     }
 
@@ -174,6 +179,7 @@ public class DummyClassGenerator extends ClassGenerator {
     }
 
 
+    @Override
     public void visitAnnotations(AnnotatedNode node) {
     }
 }
diff --git a/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java b/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
index 8ef3a04..aa7d4bb 100644
--- a/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/EnumCompletionVisitor.java
@@ -55,11 +55,13 @@ public class EnumCompletionVisitor extends ClassCodeVisitorSupport {
         sourceUnit = su;
     }
 
+    @Override
     public void visitClass(ClassNode node) {
         if (!node.isEnum()) return;
         completeEnum(node);
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return sourceUnit;
     }
@@ -153,6 +155,7 @@ public class EnumCompletionVisitor extends ClassCodeVisitorSupport {
         if (code == null) return name;
         final Object[] found = new Object[1];
         CodeVisitorSupport cv = new CodeVisitorSupport() {
+            @Override
             public void visitVariableExpression(VariableExpression expression) {
                 if (expression.getName().equals(name)) found[0] = Boolean.TRUE;
             }
diff --git a/src/main/java/org/codehaus/groovy/classgen/Verifier.java b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
index a45356c..4def542 100644
--- a/src/main/java/org/codehaus/groovy/classgen/Verifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/Verifier.java
@@ -1182,6 +1182,7 @@ public class Verifier implements GroovyClassVisitor, Opcodes {
 
     protected Statement createGetterBlock(final PropertyNode propertyNode, final FieldNode field) {
         return new BytecodeSequence(new BytecodeInstruction() {
+            @Override
             public void visit(final MethodVisitor mv) {
                 if (field.isStatic()) {
                     mv.visitFieldInsn(GETSTATIC, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType()));
diff --git a/src/main/java/org/codehaus/groovy/classgen/VerifierCodeVisitor.java b/src/main/java/org/codehaus/groovy/classgen/VerifierCodeVisitor.java
index 2fe6a17..4fa7dcc 100644
--- a/src/main/java/org/codehaus/groovy/classgen/VerifierCodeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/classgen/VerifierCodeVisitor.java
@@ -43,11 +43,13 @@ public class VerifierCodeVisitor extends CodeVisitorSupport {
         this.classNode = classNode;
     }
 
+    @Override
     public void visitForLoop(ForStatement expression) {
         assertValidIdentifier(expression.getVariable().getName(), "for loop variable name", expression);
         super.visitForLoop(expression);
     }
 
+    @Override
     public void visitFieldExpression(FieldExpression expression) {
         if (!expression.getField().isSynthetic()) {
             assertValidIdentifier(expression.getFieldName(), "field name", expression);
@@ -55,11 +57,13 @@ public class VerifierCodeVisitor extends CodeVisitorSupport {
         super.visitFieldExpression(expression);
     }
 
+    @Override
     public void visitVariableExpression(VariableExpression expression) {
         assertValidIdentifier(expression.getName(), "variable name", expression);
         super.visitVariableExpression(expression);
     }
 
+    @Override
     public void visitListExpression(ListExpression expression) {
         for (Expression element : expression.getExpressions()) {
             if (element instanceof MapEntryExpression) {
@@ -69,6 +73,7 @@ public class VerifierCodeVisitor extends CodeVisitorSupport {
         super.visitListExpression(expression);
     }
 
+    @Override
     public void visitConstructorCallExpression(ConstructorCallExpression call) {
         ClassNode callType = call.getType();
         if (callType.isEnum() && !callType.equals(classNode)) {
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryBooleanExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryBooleanExpressionHelper.java
index def371b..cae15bc 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryBooleanExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryBooleanExpressionHelper.java
@@ -44,6 +44,7 @@ public class BinaryBooleanExpressionHelper extends BinaryIntExpressionHelper {
         return ClassHelper.boolean_TYPE;
     }
     
+    @Override
     public boolean writePostOrPrefixMethod(int operation, boolean simulate) {
         if (simulate) return false;
         throw new GroovyBugError("should not reach here");
@@ -57,36 +58,45 @@ public class BinaryBooleanExpressionHelper extends BinaryIntExpressionHelper {
         throw new GroovyBugError("should not reach here");
     }
     
+    @Override
     protected boolean writeDivision(boolean simulate) {
         if (simulate) return false;
         throw new GroovyBugError("should not reach here");
     }
 
+    @Override
     protected ClassNode getNormalOpResultType() {
         return ClassHelper.boolean_TYPE;
     }
     
+    @Override
     protected ClassNode getDevisionOpResultType() {
         return ClassHelper.boolean_TYPE;
     }
     
+    @Override
     protected int getShiftOperationBytecode(int type) {
         return -1;
     }
     
+    @Override
     protected int getStandardOperationBytecode(int type) {
         return -1;
     }
     
+    @Override
     protected void removeTwoOperands(MethodVisitor mv) {
         throw new GroovyBugError("should not reach here");
     }
+    @Override
     protected void writePlusPlus(MethodVisitor mv) {
         throw new GroovyBugError("should not reach here");
     }
+    @Override
     protected void writeMinusMinus(MethodVisitor mv) {
         throw new GroovyBugError("should not reach here");
     }
+    @Override
     protected void doubleTwoOperands(MethodVisitor mv) {
         throw new GroovyBugError("should not reach here");
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryDoubleExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryDoubleExpressionHelper.java
index 669aa88..e111c45 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryDoubleExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryDoubleExpressionHelper.java
@@ -43,28 +43,34 @@ public class BinaryDoubleExpressionHelper extends BinaryLongExpressionHelper {
         doubleArrayGet = MethodCaller.newStatic(BytecodeInterface8.class, "dArrayGet"),
         doubleArraySet = MethodCaller.newStatic(BytecodeInterface8.class, "dArraySet");
 
+    @Override
     protected boolean writeBitwiseOp(int op, boolean simulate) {
         if (!simulate) throw new GroovyBugError("should not reach here");
         return false;   
     }
     
+    @Override
     protected int getBitwiseOperationBytecode(int op) {
         return -1;
     }
 
+    @Override
     protected int getCompareCode() {
         return DCMPG;
     }
 
+    @Override
     protected ClassNode getNormalOpResultType() {
         return ClassHelper.double_TYPE;
     }
 
+    @Override
     protected boolean writeShiftOp(int type, boolean simulate) {
         if (!simulate) throw new GroovyBugError("should not reach here");
         return false;   
     }
     
+    @Override
     protected int getShiftOperationBytecode(int type) {
         return -1;
     }
@@ -78,20 +84,24 @@ public class BinaryDoubleExpressionHelper extends BinaryLongExpressionHelper {
         DREM,           //  MOD         203
     };
     
+    @Override
     protected int getStandardOperationBytecode(int type) {
         return stdOperations[type];
     }
     
+    @Override
     protected void writeMinusMinus(MethodVisitor mv) {
         mv.visitInsn(DCONST_1);
         mv.visitInsn(DSUB);
     }
     
+    @Override
     protected void writePlusPlus(MethodVisitor mv) {
         mv.visitInsn(DCONST_1);
         mv.visitInsn(DADD);
     }
     
+    @Override
     protected ClassNode getDevisionOpResultType() {
         return ClassHelper.double_TYPE;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryFloatExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryFloatExpressionHelper.java
index 5e7a012..d90cceb 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryFloatExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryFloatExpressionHelper.java
@@ -40,6 +40,7 @@ public class BinaryFloatExpressionHelper extends BinaryExpressionWriter {
         super(controller, floatArraySet, floatArrayGet);
     }
     
+    @Override
     protected void doubleTwoOperands(MethodVisitor mv) {
         mv.visitInsn(DUP2);
     }
@@ -48,28 +49,34 @@ public class BinaryFloatExpressionHelper extends BinaryExpressionWriter {
         floatArrayGet = MethodCaller.newStatic(BytecodeInterface8.class, "fArrayGet"),
         floatArraySet = MethodCaller.newStatic(BytecodeInterface8.class, "fArraySet");
 
+    @Override
     protected boolean writeBitwiseOp(int type, boolean simulate) {
         if (!simulate) throw new GroovyBugError("should not reach here");
         return false;   
     }    
     
+    @Override
     protected int getBitwiseOperationBytecode(int type) {
         return -1;
     }
     
+    @Override
     protected int getCompareCode() {
         return FCMPG;
     }
     
+    @Override
     protected ClassNode getNormalOpResultType() {
         return ClassHelper.float_TYPE;
     }
     
+    @Override
     protected boolean writeShiftOp(int type, boolean simulate) {
         if (!simulate) throw new GroovyBugError("should not reach here");
         return false;   
     }    
     
+    @Override
     protected int getShiftOperationBytecode(int type) {
         return -1;
     }
@@ -83,24 +90,29 @@ public class BinaryFloatExpressionHelper extends BinaryExpressionWriter {
         FREM,           //  MOD         203
     };    
     
+    @Override
     protected int getStandardOperationBytecode(int type) {
         return stdOperations[type];
     }
     
+    @Override
     protected void removeTwoOperands(MethodVisitor mv) {
         mv.visitInsn(POP2);
     }
     
+    @Override
     protected void writeMinusMinus(MethodVisitor mv) {
         mv.visitInsn(FCONST_1);
         mv.visitInsn(FSUB);
     }
     
+    @Override
     protected void writePlusPlus(MethodVisitor mv) {
         mv.visitInsn(FCONST_1);
         mv.visitInsn(FADD);
     }
 
+    @Override
     protected ClassNode getDevisionOpResultType() {
         return ClassHelper.BigDecimal_TYPE;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryIntExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryIntExpressionHelper.java
index dfa1245..75cb14e 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryIntExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryIntExpressionHelper.java
@@ -142,6 +142,7 @@ public class BinaryIntExpressionHelper extends BinaryExpressionWriter {
      * @param type the token type
      * @return true if a successful std compare write
      */
+    @Override
     protected boolean writeStdCompare(int type, boolean simulate) {
         type = type-COMPARE_NOT_EQUAL;
         // look if really compare
@@ -170,6 +171,7 @@ public class BinaryIntExpressionHelper extends BinaryExpressionWriter {
      * @param type the token type
      * @return true if a successful spaceship operator write
      */
+    @Override
     protected boolean writeSpaceship(int type, boolean simulate) {
         if (type != COMPARE_TO) return false;
         /*  
@@ -244,44 +246,54 @@ public class BinaryIntExpressionHelper extends BinaryExpressionWriter {
         return true;
     }
 
+    @Override
     protected void doubleTwoOperands(MethodVisitor mv) {
         mv.visitInsn(DUP2);
     }
 
+    @Override
     protected int getBitwiseOperationBytecode(int type) {
         return bitOp[type];
     }
 
+    @Override
     protected int getCompareCode() {
         return -1;
     }
 
+    @Override
     protected ClassNode getNormalOpResultType() {
         return ClassHelper.int_TYPE;
     }
 
+    @Override
     protected int getShiftOperationBytecode(int type) {
         return shiftOp[type];
     }
 
+    @Override
     protected int getStandardOperationBytecode(int type) {
         return stdOperations[type];
     }
 
+    @Override
     protected void removeTwoOperands(MethodVisitor mv) {
         mv.visitInsn(POP2);
     }
 
+    @Override
     protected void writeMinusMinus(MethodVisitor mv) {
         mv.visitInsn(ICONST_1);
         mv.visitInsn(ISUB);
     }
 
+    @Override
     protected void writePlusPlus(MethodVisitor mv) {
         mv.visitInsn(ICONST_1);
         mv.visitInsn(IADD);
     }
 
+    @Override
     protected ClassNode getDevisionOpResultType() {
         return ClassHelper.int_TYPE;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryLongExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryLongExpressionHelper.java
index 95558e1..bfc2499 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryLongExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryLongExpressionHelper.java
@@ -52,6 +52,7 @@ public class BinaryLongExpressionHelper extends BinaryExpressionWriter {
         this(controller, longArraySet, longArrayGet);
     }
 
+    @Override
     protected void doubleTwoOperands(MethodVisitor mv) {
         /*
             since there is no DUP4 we have to do this:
@@ -70,6 +71,7 @@ public class BinaryLongExpressionHelper extends BinaryExpressionWriter {
         mv.visitInsn(DUP2_X1);
     }
 
+    @Override
     protected void removeTwoOperands(MethodVisitor mv) {
         mv.visitInsn(POP2);
         mv.visitInsn(POP2);
@@ -85,14 +87,17 @@ public class BinaryLongExpressionHelper extends BinaryExpressionWriter {
         LXOR,           //  BIWISE_XOR          342
     };
 
+    @Override
     protected int getBitwiseOperationBytecode(int type) {
         return bitOp[type];
     }
 
+    @Override
     protected int getCompareCode() {
         return LCMP;
     }
 
+    @Override
     protected ClassNode getNormalOpResultType() {
         return ClassHelper.long_TYPE;
     }
@@ -103,6 +108,7 @@ public class BinaryLongExpressionHelper extends BinaryExpressionWriter {
         LUSHR           // RIGHT_SHIFT_UNSIGNED     282
     };
     
+    @Override
     protected int getShiftOperationBytecode(int type) {
         return shiftOp[type];
     }
@@ -116,20 +122,24 @@ public class BinaryLongExpressionHelper extends BinaryExpressionWriter {
         LREM,           //  MOD         203
     };
     
+    @Override
     protected int getStandardOperationBytecode(int type) {
         return stdOperations[type];
     }
 
+    @Override
     protected void writeMinusMinus(MethodVisitor mv) {
         mv.visitInsn(LCONST_1);
         mv.visitInsn(LSUB);
     }
 
+    @Override
     protected void writePlusPlus(MethodVisitor mv) {
         mv.visitInsn(LCONST_1);
         mv.visitInsn(LADD);
     }
 
+    @Override
     protected ClassNode getDevisionOpResultType() {
         return ClassHelper.long_TYPE;
     }
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryObjectExpressionHelper.java b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryObjectExpressionHelper.java
index f625279..d9e6b08 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/BinaryObjectExpressionHelper.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/BinaryObjectExpressionHelper.java
@@ -33,48 +33,61 @@ public class BinaryObjectExpressionHelper extends BinaryExpressionWriter {
     }
     
     // dummy methods
+    @Override
     public boolean writePostOrPrefixMethod(int operation, boolean simulate) {
         if (simulate) return false;
         throw new GroovyBugError("should not reach here");
     }
     
+    @Override
     public boolean write(int operation, boolean simulate) {
         if (simulate) return false;
         throw new GroovyBugError("should not reach here");
     }
     
+    @Override
     protected boolean writeDivision(boolean simulate) {
         if (simulate) return false;
         throw new GroovyBugError("should not reach here");
     }
 
+    @Override
     protected int getBitwiseOperationBytecode(int type) {
         return -1;
     }
     
+    @Override
     protected int getCompareCode() {
         return -1;
     }
     
+    @Override
     protected ClassNode getNormalOpResultType() {
         return null;
     }
     
+    @Override
     protected ClassNode getDevisionOpResultType() {
         return null;
     }
     
+    @Override
     protected int getShiftOperationBytecode(int type) {
         return -1;
     }
     
+    @Override
     protected int getStandardOperationBytecode(int type) {
         return -1;
     }
     
+    @Override
     protected void removeTwoOperands(MethodVisitor mv) {}
+    @Override
     protected void writePlusPlus(MethodVisitor mv) {}
+    @Override
     protected void writeMinusMinus(MethodVisitor mv) {}
+    @Override
     protected void doubleTwoOperands(MethodVisitor mv) {}
     
     @Override
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/indy/sc/IndyStaticTypesMultiTypeDispatcher.java b/src/main/java/org/codehaus/groovy/classgen/asm/indy/sc/IndyStaticTypesMultiTypeDispatcher.java
index 88d448a..8d47c55 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/indy/sc/IndyStaticTypesMultiTypeDispatcher.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/indy/sc/IndyStaticTypesMultiTypeDispatcher.java
@@ -66,6 +66,7 @@ public class IndyStaticTypesMultiTypeDispatcher extends StaticTypesBinaryExpress
         }
     }
 
+    @Override
     protected BinaryExpressionWriter[] initializeDelegateHelpers() {
         BinaryExpressionWriter[] bewArray = super.initializeDelegateHelpers();
         /* 1: int    */
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticCompilationMopWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticCompilationMopWriter.java
index a509c8b..4c3ba79 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticCompilationMopWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticCompilationMopWriter.java
@@ -45,6 +45,7 @@ public class StaticCompilationMopWriter extends MopWriter {
     }
 
 
+    @Override
     public void createMopMethods() {
         ClassNode classNode = controller.getClassNode();
         LinkedList<MethodNode> requiredMopMethods = classNode.getNodeMetaData(StaticTypesMarker.SUPER_MOP_METHOD_REQUIRED);
diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesWriterControllerFactoryImpl.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesWriterControllerFactoryImpl.java
index 41f2dea..ac2f2ea 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesWriterControllerFactoryImpl.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesWriterControllerFactoryImpl.java
@@ -23,6 +23,7 @@ import org.codehaus.groovy.classgen.asm.WriterControllerFactory;
 
 public class StaticTypesWriterControllerFactoryImpl implements WriterControllerFactory {
 
+    @Override
     public WriterController makeController(WriterController normalController) {
         return new StaticTypesWriterController(normalController);
     }
diff --git a/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java b/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java
index a3785f8..a471a77 100644
--- a/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/AnnotationConstantsVisitor.java
@@ -127,6 +127,7 @@ public class AnnotationConstantsVisitor extends ClassCodeVisitorSupport {
         return result;
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return source;
     }
diff --git a/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java b/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
index e5842a8..22ce062 100644
--- a/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
+++ b/src/main/java/org/codehaus/groovy/control/ClassNodeResolver.java
@@ -99,6 +99,7 @@ public class ClassNodeResolver {
      * WARNING: This class is not to be used outside of ClassNodeResolver.
      */
     protected static final ClassNode NO_CLASS = new ClassNode("NO_CLASS", Opcodes.ACC_PUBLIC,ClassHelper.OBJECT_TYPE){
+        @Override
         public void setRedirect(ClassNode cn) {
             throw new GroovyBugError("This is a dummy class node only! Never use it for real classes.");
         }
diff --git a/src/main/java/org/codehaus/groovy/control/ConfigurationException.java b/src/main/java/org/codehaus/groovy/control/ConfigurationException.java
index 5778209..68f56d2 100644
--- a/src/main/java/org/codehaus/groovy/control/ConfigurationException.java
+++ b/src/main/java/org/codehaus/groovy/control/ConfigurationException.java
@@ -46,6 +46,7 @@ public class ConfigurationException extends RuntimeException implements GroovyEx
     /**
      * Returns the causing exception, if available.
      */
+    @Override
     public Throwable getCause() {
         return cause;
     }
@@ -53,6 +54,7 @@ public class ConfigurationException extends RuntimeException implements GroovyEx
     /**
      * Its always fatal.
      */
+    @Override
     public boolean isFatal() {
         return true;
     }
@@ -60,6 +62,7 @@ public class ConfigurationException extends RuntimeException implements GroovyEx
     /**
      * Set fatal is just ignored.
      */
+    @Override
     public void setFatal(boolean fatal) {
     }
 
diff --git a/src/main/java/org/codehaus/groovy/control/GenericsVisitor.java b/src/main/java/org/codehaus/groovy/control/GenericsVisitor.java
index 95e74cd..4fbc10d 100644
--- a/src/main/java/org/codehaus/groovy/control/GenericsVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/GenericsVisitor.java
@@ -49,6 +49,7 @@ public class GenericsVisitor extends ClassCodeVisitorSupport {
         this.source = source;
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return source;
     }
diff --git a/src/main/java/org/codehaus/groovy/control/Janitor.java b/src/main/java/org/codehaus/groovy/control/Janitor.java
index 46885ed..1c4a579 100644
--- a/src/main/java/org/codehaus/groovy/control/Janitor.java
+++ b/src/main/java/org/codehaus/groovy/control/Janitor.java
@@ -32,6 +32,7 @@ public class Janitor implements HasCleanup {
         pending.add(object);
     }
 
+    @Override
     public void cleanup() {
         for (Object o : pending) {
             HasCleanup object = (HasCleanup) o;
diff --git a/src/main/java/org/codehaus/groovy/control/LabelVerifier.java b/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
index 0708db8..5c413f7 100644
--- a/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
+++ b/src/main/java/org/codehaus/groovy/control/LabelVerifier.java
@@ -46,6 +46,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         source = src;
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return source;
     }
@@ -58,12 +59,14 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         inSwitch = false;
     }
 
+    @Override
     protected void visitClassCodeContainer(Statement code) {
         init();
         super.visitClassCodeContainer(code);
         assertNoLabelsMissed();
     }
 
+    @Override
     public void visitStatement(Statement statement) {
         List<String> labels = statement.getStatementLabels();
 
@@ -84,6 +87,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         super.visitStatement(statement);
     }
 
+    @Override
     public void visitForLoop(ForStatement forLoop) {
         boolean oldInLoop = inLoop;
         inLoop = true;
@@ -91,6 +95,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         inLoop = oldInLoop;
     }
 
+    @Override
     public void visitDoWhileLoop(DoWhileStatement loop) {
         boolean oldInLoop = inLoop;
         inLoop = true;
@@ -98,6 +103,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         inLoop = oldInLoop;
     }
 
+    @Override
     public void visitWhileLoop(WhileStatement loop) {
         boolean oldInLoop = inLoop;
         inLoop = true;
@@ -105,6 +111,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         inLoop = oldInLoop;
     }
 
+    @Override
     public void visitBreakStatement(BreakStatement statement) {
         String label = statement.getLabel();
         boolean hasNamedLabel = label != null;
@@ -127,6 +134,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         super.visitBreakStatement(statement);
     }
 
+    @Override
     public void visitContinueStatement(ContinueStatement statement) {
         String label = statement.getLabel();
         boolean hasNamedLabel = label != null;
@@ -157,6 +165,7 @@ public class LabelVerifier extends ClassCodeVisitorSupport {
         }
     }
 
+    @Override
     public void visitSwitch(SwitchStatement statement) {
         boolean oldInSwitch = inSwitch;
         inSwitch = true;
diff --git a/src/main/java/org/codehaus/groovy/control/MultipleCompilationErrorsException.java b/src/main/java/org/codehaus/groovy/control/MultipleCompilationErrorsException.java
index 8d7d14c..9ae704a 100644
--- a/src/main/java/org/codehaus/groovy/control/MultipleCompilationErrorsException.java
+++ b/src/main/java/org/codehaus/groovy/control/MultipleCompilationErrorsException.java
@@ -48,6 +48,7 @@ public class MultipleCompilationErrorsException extends
         return collector;
     }
     
+    @Override
     public String getMessage() {
         Writer data = new StringBuilderWriter();
         PrintWriter writer = new PrintWriter(data);
diff --git a/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java b/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
index c9313dd..33ed1da 100644
--- a/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/OptimizerVisitor.java
@@ -129,6 +129,7 @@ public class OptimizerVisitor extends ClassCodeExpressionTransformer {
         }
     }
 
+    @Override
     public Expression transform(Expression exp) {
         if (exp == null) return null;
         if (!currentClass.isInterface() && exp.getClass() == ConstantExpression.class) {
@@ -137,10 +138,12 @@ public class OptimizerVisitor extends ClassCodeExpressionTransformer {
         return exp.transformExpression(this);
     }
 
+    @Override
     protected SourceUnit getSourceUnit() {
         return source;
     }
 
+    @Override
     public void visitClosureExpression(ClosureExpression expression) {
         /*
          * GROOVY-3339 - do nothing - so that numbers don't get replaced by cached constants in closure classes
diff --git a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
index f92bde2..9b84041 100644
--- a/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
+++ b/src/main/java/org/codehaus/groovy/control/StaticImportVisitor.java
@@ -110,6 +110,7 @@ public class StaticImportVisitor extends ClassCodeExpressionTransformer {
         inAnnotation = oldInAnnotation;
     }
 
+    @Override
     public Expression transform(Expression exp) {
         if (exp == null) return null;
         Class<? extends Expression> clazz = exp.getClass();
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/CustomizersFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/CustomizersFactory.java
index b013cee..4f86a90 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/CustomizersFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/CustomizersFactory.java
@@ -35,6 +35,7 @@ import java.util.Map;
 public class CustomizersFactory extends AbstractFactory implements PostCompletionFactory {
     private static final CompilationCustomizer[] EMPTY_COMPILATIONCUSTOMIZER_ARRAY = new CompilationCustomizer[0];
 
+    @Override
     public Object newInstance(final FactoryBuilderSupport builder, final Object name, final Object value, final Map attributes) throws InstantiationException, IllegalAccessException {
         return new LinkedList();
     }
@@ -48,6 +49,7 @@ public class CustomizersFactory extends AbstractFactory implements PostCompletio
     }
 
 
+    @Override
     @SuppressWarnings("unchecked")
     public Object postCompleteNode(final FactoryBuilderSupport factory, final Object parent, final Object node) {
         if (node instanceof List) {
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/ImportCustomizerFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/ImportCustomizerFactory.java
index a42570d..3380a63 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/ImportCustomizerFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/ImportCustomizerFactory.java
@@ -52,6 +52,7 @@ public class ImportCustomizerFactory extends AbstractFactory {
         return true;
     }
 
+    @Override
     public Object newInstance(final FactoryBuilderSupport builder, final Object name, final Object value, final Map attributes) throws InstantiationException, IllegalAccessException {
         ImportCustomizer customizer = new ImportCustomizer();
         addImport(customizer, value);
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java
index 9f6afc2..4de7ded 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/InlinedASTCustomizerFactory.java
@@ -49,6 +49,7 @@ public class InlinedASTCustomizerFactory extends AbstractFactory implements Post
         return true;
     }
 
+    @Override
     public Object newInstance(final FactoryBuilderSupport builder, final Object name, final Object value, final Map attributes) throws InstantiationException, IllegalAccessException {
         if (attributes.isEmpty() || !attributes.containsKey("phase")) {
             throw new RuntimeException("You must specify a CompilePhase to run at, using the [phase] attribute");
@@ -66,6 +67,7 @@ public class InlinedASTCustomizerFactory extends AbstractFactory implements Post
         return false;
     }
 
+    @Override
     public Object postCompleteNode(final FactoryBuilderSupport factory, final Object parent, final Object node) {
         if (node instanceof Map) {
             Map map = (Map) node;
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/SecureASTCustomizerFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/SecureASTCustomizerFactory.java
index 4d2fd0c..573c204 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/SecureASTCustomizerFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/SecureASTCustomizerFactory.java
@@ -37,6 +37,7 @@ public class SecureASTCustomizerFactory extends AbstractFactory {
         return true;
     }
 
+    @Override
     public Object newInstance(final FactoryBuilderSupport builder, final Object name, final Object value, final Map attributes) throws InstantiationException, IllegalAccessException {
         return new SecureASTCustomizer();
     }
diff --git a/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java b/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
index cb02d8a..0a3f910 100644
--- a/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
+++ b/src/main/java/org/codehaus/groovy/control/customizers/builder/SourceAwareCustomizerFactory.java
@@ -79,6 +79,7 @@ import java.util.Map;
  */
 public class SourceAwareCustomizerFactory extends AbstractFactory implements PostCompletionFactory {
 
+    @Override
     public Object newInstance(final FactoryBuilderSupport builder, final Object name, final Object value, final Map attributes) throws InstantiationException, IllegalAccessException {
         SourceOptions data = new SourceOptions();
         if (value instanceof CompilationCustomizer) {
@@ -101,6 +102,7 @@ public class SourceAwareCustomizerFactory extends AbstractFactory implements Pos
         }
     }
 
+    @Override
     public Object postCompleteNode(final FactoryBuilderSupport factory, final Object parent, final Object node) {
         SourceOptions data = (SourceOptions) node;
         SourceAwareCustomizer sourceAwareCustomizer = new SourceAwareCustomizer(data.delegate);
diff --git a/src/main/java/org/codehaus/groovy/control/io/AbstractReaderSource.java b/src/main/java/org/codehaus/groovy/control/io/AbstractReaderSource.java
index d31dd7b..df9c11e 100644
--- a/src/main/java/org/codehaus/groovy/control/io/AbstractReaderSource.java
+++ b/src/main/java/org/codehaus/groovy/control/io/AbstractReaderSource.java
@@ -40,6 +40,7 @@ public abstract class AbstractReaderSource implements ReaderSource {
      * Returns true if the source can be restarted (ie. if getReader()
      * will return non-null on subsequent calls.
      */
+    @Override
     public boolean canReopenSource() {
         return true;
     }
@@ -52,6 +53,7 @@ public abstract class AbstractReaderSource implements ReaderSource {
      * Returns a line from the source, or null, if unavailable.  If
      * you supply a Janitor, resources will be cached.
      */
+    @Override
     public String getLine(int lineNumber, Janitor janitor) {
         // If the source is already open and is passed the line we
         // want, close it.
@@ -96,6 +98,7 @@ public abstract class AbstractReaderSource implements ReaderSource {
     /**
      * Cleans up any cached resources used by getLine().
      */
+    @Override
     public void cleanup() {
         if (lineSource != null) {
             try {
diff --git a/src/main/java/org/codehaus/groovy/control/io/FileReaderSource.java b/src/main/java/org/codehaus/groovy/control/io/FileReaderSource.java
index 8e117d9..a4bd1af 100644
--- a/src/main/java/org/codehaus/groovy/control/io/FileReaderSource.java
+++ b/src/main/java/org/codehaus/groovy/control/io/FileReaderSource.java
@@ -55,6 +55,7 @@ public class FileReaderSource extends AbstractReaderSource {
     /**
     *  Returns a new Reader on the underlying source object.  
     */
+    @Override
     public Reader getReader() throws IOException {
        // we want to remove the BOM windows adds from a file if the encoding is UTF-8
        // in other cases we depend on the charsets 
@@ -83,6 +84,7 @@ public class FileReaderSource extends AbstractReaderSource {
      *
      * @return URI for the file of this source.
      */
+    @Override
     public URI getURI() {
         return file.toURI();
     }
diff --git a/src/main/java/org/codehaus/groovy/control/io/InputStreamReaderSource.java b/src/main/java/org/codehaus/groovy/control/io/InputStreamReaderSource.java
index 3674012..c4bcd0c 100644
--- a/src/main/java/org/codehaus/groovy/control/io/InputStreamReaderSource.java
+++ b/src/main/java/org/codehaus/groovy/control/io/InputStreamReaderSource.java
@@ -46,6 +46,7 @@ public class InputStreamReaderSource extends AbstractReaderSource {
     /**
      * Returns a new Reader on the underlying source object.
      */
+    @Override
     public Reader getReader() throws IOException {
         if (stream != null) {
             Reader reader = new InputStreamReader(stream, configuration.getSourceEncoding());
@@ -59,6 +60,7 @@ public class InputStreamReaderSource extends AbstractReaderSource {
      * Returns true if the source can be restarted (ie. if getReader()
      * will return non-null on subsequent calls.
      */
+    @Override
     public boolean canReopenSource() {
         return false;
     }
@@ -68,6 +70,7 @@ public class InputStreamReaderSource extends AbstractReaderSource {
      *
      * @return null
      */
+    @Override
     public URI getURI() {
         return null;
     }
diff --git a/src/main/java/org/codehaus/groovy/control/io/NullWriter.java b/src/main/java/org/codehaus/groovy/control/io/NullWriter.java
index a50caed..7bcda2f 100644
--- a/src/main/java/org/codehaus/groovy/control/io/NullWriter.java
+++ b/src/main/java/org/codehaus/groovy/control/io/NullWriter.java
@@ -26,9 +26,12 @@ import java.io.Writer;
 public class NullWriter extends Writer {
     public static final NullWriter DEFAULT = new NullWriter();
     
+    @Override
     public void close() {}
     
+    @Override
     public void flush() {}
     
-    public void write( char[] cbuf, int off, int len ) {}
+    @Override
+    public void write(char[] cbuf, int off, int len ) {}
 }
diff --git a/src/main/java/org/codehaus/groovy/control/io/ReaderSource.java b/src/main/java/org/codehaus/groovy/control/io/ReaderSource.java
index 9cf2d2a..1faa228 100644
--- a/src/main/java/org/codehaus/groovy/control/io/ReaderSource.java
+++ b/src/main/java/org/codehaus/groovy/control/io/ReaderSource.java
@@ -57,7 +57,8 @@ public interface ReaderSource extends HasCleanup {
    /**
     *  Cleans up any cached resources used by getLine().
     */
-    void cleanup();
+   @Override
+   void cleanup();
 
     /**
      * Returns a URI for this source.
diff --git a/src/main/java/org/codehaus/groovy/control/io/StringReaderSource.java b/src/main/java/org/codehaus/groovy/control/io/StringReaderSource.java
index 2f01140..ba03a6f 100644
--- a/src/main/java/org/codehaus/groovy/control/io/StringReaderSource.java
+++ b/src/main/java/org/codehaus/groovy/control/io/StringReaderSource.java
@@ -46,6 +46,7 @@ public class StringReaderSource extends AbstractReaderSource {
    /**
     *  Returns a new Reader on the underlying source object.  
     */
+   @Override
    public Reader getReader() throws IOException {
        return new StringReader( string );
    }
@@ -55,6 +56,7 @@ public class StringReaderSource extends AbstractReaderSource {
      *
      * @return Data URI containing the literal value of this source string.
      */
+    @Override
     public URI getURI() {
         try {
             return new URI("data", "," + string, null);
diff --git a/src/main/java/org/codehaus/groovy/control/io/URLReaderSource.java b/src/main/java/org/codehaus/groovy/control/io/URLReaderSource.java
index 3644dd2..45b3deb 100644
--- a/src/main/java/org/codehaus/groovy/control/io/URLReaderSource.java
+++ b/src/main/java/org/codehaus/groovy/control/io/URLReaderSource.java
@@ -48,6 +48,7 @@ public class URLReaderSource extends AbstractReaderSource {
    /**
     *  Returns a new Reader on the underlying source object.  
     */
+    @Override
     public Reader getReader() throws IOException {
        return new InputStreamReader(URLStreams.openUncachedStream(url), configuration.getSourceEncoding() );
     }
@@ -57,6 +58,7 @@ public class URLReaderSource extends AbstractReaderSource {
      *
      * @return URI for the URL of this source.
      */
+    @Override
     public URI getURI() {
         try {
             return url.toURI();
diff --git a/src/main/java/org/codehaus/groovy/control/messages/ExceptionMessage.java b/src/main/java/org/codehaus/groovy/control/messages/ExceptionMessage.java
index cd7621f..5edf74e 100644
--- a/src/main/java/org/codehaus/groovy/control/messages/ExceptionMessage.java
+++ b/src/main/java/org/codehaus/groovy/control/messages/ExceptionMessage.java
@@ -49,6 +49,7 @@ public class ExceptionMessage extends Message {
     /**
      * Writes out a nicely formatted summary of the exception.
      */
+    @Override
     public void write(final PrintWriter output, final Janitor janitor) {
         String description = "General error during " + owner.getPhaseDescription() + ": ";
 
diff --git a/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java b/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java
index 773777b..3f8df6b 100644
--- a/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java
+++ b/src/main/java/org/codehaus/groovy/control/messages/LocatedMessage.java
@@ -46,6 +46,7 @@ public class LocatedMessage extends SimpleMessage {
         return context;
     }
 
+    @Override
     public void write(PrintWriter writer, Janitor janitor) {
         if (owner instanceof SourceUnit) {
             SourceUnit source = (SourceUnit) owner;
diff --git a/src/main/java/org/codehaus/groovy/control/messages/SimpleMessage.java b/src/main/java/org/codehaus/groovy/control/messages/SimpleMessage.java
index 8668dfe..5afc768 100644
--- a/src/main/java/org/codehaus/groovy/control/messages/SimpleMessage.java
+++ b/src/main/java/org/codehaus/groovy/control/messages/SimpleMessage.java
@@ -42,6 +42,7 @@ public class SimpleMessage extends Message {
         this.owner = source;
     }
 
+    @Override
     public void write(PrintWriter writer, Janitor janitor) {
         if (owner instanceof SourceUnit) {
             String name = ((SourceUnit) owner).getName();
diff --git a/src/main/java/org/codehaus/groovy/control/messages/SyntaxErrorMessage.java b/src/main/java/org/codehaus/groovy/control/messages/SyntaxErrorMessage.java
index 5955412..2a216d9 100644
--- a/src/main/java/org/codehaus/groovy/control/messages/SyntaxErrorMessage.java
+++ b/src/main/java/org/codehaus/groovy/control/messages/SyntaxErrorMessage.java
@@ -47,6 +47,7 @@ public class SyntaxErrorMessage extends Message {
     /**
      * Writes out a nicely formatted summary of the syntax error.
      */
+    @Override
     public void write(PrintWriter output, Janitor janitor) {
         String name = source.getName();
         int line = getCause().getStartLine();
diff --git a/src/main/java/org/codehaus/groovy/control/messages/WarningMessage.java b/src/main/java/org/codehaus/groovy/control/messages/WarningMessage.java
index c245e8e..d28d800 100644
--- a/src/main/java/org/codehaus/groovy/control/messages/WarningMessage.java
+++ b/src/main/java/org/codehaus/groovy/control/messages/WarningMessage.java
@@ -81,6 +81,7 @@ public class WarningMessage extends LocatedMessage {
         this.importance = importance;
     }
 
+    @Override
     public void write(PrintWriter writer, Janitor janitor) {
         writer.print("warning: ");
         super.write(writer, janitor);
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java b/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java
index cf7921b..1ed384f 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedConstructor.java
@@ -41,6 +41,7 @@ public class CachedConstructor extends ParameterTypes {
         this(ReflectionCache.getCachedClass(c.getDeclaringClass()), c);
     }
 
+    @Override
     protected Class[] getPT() {
         return cachedConstructor.getParameterTypes();
     }
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java b/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
index 211079b..6f207ce 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedMethod.java
@@ -79,22 +79,27 @@ public class CachedMethod extends MetaMethod implements Comparable {
         return methods[i];
     }
 
+    @Override
     public Class[] getPT() {
         return cachedMethod.getParameterTypes();
     }
 
+    @Override
     public String getName() {
         return cachedMethod.getName();
     }
 
+    @Override
     public String getDescriptor() {
         return BytecodeHelper.getMethodDescriptor(getReturnType(), getNativeParameterTypes());
     }
 
+    @Override
     public CachedClass getDeclaringClass() {
         return cachedClass;
     }
 
+    @Override
     public final Object invoke(Object object, Object[] arguments) {
         makeAccessibleIfNecessary();
 
@@ -118,6 +123,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
         return null;
     }
 
+    @Override
     public Class getReturnType() {
         return cachedMethod.getReturnType();
     }
@@ -126,11 +132,13 @@ public class CachedMethod extends MetaMethod implements Comparable {
         return getParameterTypes().length;
     }
 
+    @Override
     public int getModifiers() {
         return cachedMethod.getModifiers();
     }
 
 
+    @Override
     public String getSignature() {
         return getName() + getDescriptor();
     }
@@ -146,6 +154,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
         return cachedMethod;
     }
 
+    @Override
     public boolean isStatic() {
         return MethodHelper.isStatic(cachedMethod);
     }
@@ -158,6 +167,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
         this.transformedMethod = transformedMethod;
     }
 
+    @Override
     public int compareTo(Object o) {
       if (o instanceof CachedMethod)
         return compareToCachedMethod((CachedMethod)o);
@@ -337,6 +347,7 @@ public class CachedMethod extends MetaMethod implements Comparable {
     private static class MyComparator implements Comparator, Serializable {
         private static final long serialVersionUID = 8909277090690131302L;
 
+        @Override
         public int compare(Object o1, Object o2) {
             if (o1 instanceof CachedMethod)
                 return ((CachedMethod)o1).compareTo(o2);
diff --git a/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java b/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
index 092ae28..b4b4f6d 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ClassInfo.java
@@ -433,6 +433,7 @@ public class ClassInfo implements Finalizable {
             this.info = info;
         }
 
+        @Override
         public CachedClass initValue() {
             return createCachedClass(info.classRef.get(), info);
         }
@@ -447,6 +448,7 @@ public class ClassInfo implements Finalizable {
             this.info = info;
         }
 
+        @Override
         public ClassLoaderForClassArtifacts initValue() {
             return AccessController.doPrivileged((PrivilegedAction<ClassLoaderForClassArtifacts>) () -> new ClassLoaderForClassArtifacts(info.classRef.get()));
         }
diff --git a/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java b/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
index 5087a84..4995c58 100644
--- a/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
+++ b/src/main/java/org/codehaus/groovy/reflection/ClassLoaderForClassArtifacts.java
@@ -45,6 +45,7 @@ public class ClassLoaderForClassArtifacts extends ClassLoader {
         return cls;
     }
 
+    @Override
     public Class loadClass(String name) throws ClassNotFoundException {
         Class cls = findLoadedClass(name);
         if (cls != null)
diff --git a/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java b/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
index 23a0db7..d7e7c64 100644
--- a/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/reflection/GeneratedMetaMethod.java
@@ -48,18 +48,22 @@ public abstract class GeneratedMetaMethod extends MetaMethod {
         nativeParamTypes = parameters;
     }
 
+    @Override
     public int getModifiers() {
         return Modifier.PUBLIC;
     }
 
+    @Override
     public String getName() {
         return name;
     }
 
+    @Override
     public Class getReturnType() {
         return returnType;
     }
 
+    @Override
     public CachedClass getDeclaringClass() {
         return declaringClass;
     }
@@ -83,6 +87,7 @@ public abstract class GeneratedMetaMethod extends MetaMethod {
             return proxy().doMethodInvoke(object, argumentArray);
         }
 
+        @Override
         public Object invoke(Object object, Object[] arguments) {
             return proxy().invoke(object, arguments);
         }
diff --git a/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java b/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
index a0e7e7c..b54c2ff 100644
--- a/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/MixinInMetaClass.java
@@ -178,6 +178,7 @@ public class MixinInMetaClass {
                 metaMethod = new NewInstanceMetaMethod(method);
             else
                 metaMethod = new NewInstanceMetaMethod(method) {
+                    @Override
                     public CachedClass getDeclaringClass() {
                         return ReflectionCache.getCachedClass(self.getTheClass());
                     }
diff --git a/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java b/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
index 5f9b7ac..8db79c1 100644
--- a/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
+++ b/src/main/java/org/codehaus/groovy/reflection/SunClassLoader.java
@@ -99,6 +99,7 @@ public class SunClassLoader extends ClassLoader {
         knownClasses.put(name, defineClass(name, bytes, 0, bytes.length));
     }
 
+    @Override
     protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
         final Class aClass = knownClasses.get(name);
         if (aClass != null)
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
index 6f53cac..af291f4 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
@@ -28,6 +28,7 @@ public class ArrayCachedClass extends CachedClass {
         super(klazz, classInfo);
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         Class argumentClass = argument.getClass();
         if (argumentClass.getName().charAt(0) != '[') return argument;
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigDecimalCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigDecimalCachedClass.java
index d1f7646..0278205 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigDecimalCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigDecimalCachedClass.java
@@ -28,10 +28,12 @@ public class BigDecimalCachedClass extends DoubleCachedClass {
         super(klazz, classInfo, true);
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return argument instanceof BigDecimal;
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof BigDecimal) {
             return argument;
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigIntegerCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigIntegerCachedClass.java
index ba90a8b..f1d39d0 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigIntegerCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/BigIntegerCachedClass.java
@@ -27,10 +27,12 @@ public class BigIntegerCachedClass extends NumberCachedClass {
         super(klazz, classInfo);
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return argument instanceof BigInteger;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return classToTransformFrom == null
             || classToTransformFrom == Integer.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/BooleanCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/BooleanCachedClass.java
index 2d24f73..ba22134 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/BooleanCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/BooleanCachedClass.java
@@ -28,10 +28,12 @@ public class BooleanCachedClass extends CachedClass {
         this.allowNull = allowNull;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Boolean;
      }
     
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
               || classToTransformFrom == Boolean.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ByteCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ByteCachedClass.java
index c9d75f9..9038bb3 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ByteCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ByteCachedClass.java
@@ -27,6 +27,7 @@ public class ByteCachedClass extends NumberCachedClass {
         this.allowNull = allowNull;
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Byte) {
             return argument;
@@ -38,10 +39,12 @@ public class ByteCachedClass extends NumberCachedClass {
         return argument;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Byte;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
             || classToTransformFrom == Byte.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/CharacterCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/CharacterCachedClass.java
index 44d9b0f..02eb954 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/CharacterCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/CharacterCachedClass.java
@@ -29,10 +29,12 @@ public class CharacterCachedClass extends CachedClass {
         this.allowNull = allowNull;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Character;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
                 || classToTransformFrom == Character.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/DoubleCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/DoubleCachedClass.java
index 5e4fc72..091f904 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/DoubleCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/DoubleCachedClass.java
@@ -31,10 +31,12 @@ public class DoubleCachedClass extends NumberCachedClass { // Double, double
         this.allowNull = allowNull;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Double;
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Double) {
             return argument;
@@ -50,6 +52,7 @@ public class DoubleCachedClass extends NumberCachedClass { // Double, double
         return argument;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
                 || classToTransformFrom == Double.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/FloatCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/FloatCachedClass.java
index a615f2a..a84951c 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/FloatCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/FloatCachedClass.java
@@ -31,6 +31,7 @@ public class FloatCachedClass extends NumberCachedClass {
         this.allowNull = allowNull;
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Float) {
             return argument;
@@ -46,10 +47,12 @@ public class FloatCachedClass extends NumberCachedClass {
         return argument;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Float;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
                 || classToTransformFrom == Float.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/IntegerCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/IntegerCachedClass.java
index 35be554..41bc8ce 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/IntegerCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/IntegerCachedClass.java
@@ -30,6 +30,7 @@ public class IntegerCachedClass extends NumberCachedClass {  // int, Integer
         this.allowNull = allowNull;
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Integer) {
             return argument;
@@ -41,10 +42,12 @@ public class IntegerCachedClass extends NumberCachedClass {  // int, Integer
         return argument;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Integer;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
                 || classToTransformFrom == Integer.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/LongCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/LongCachedClass.java
index 0b15b91..5699cd9 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/LongCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/LongCachedClass.java
@@ -29,6 +29,7 @@ public class LongCachedClass extends NumberCachedClass {
     }
 
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Long) {
             return argument;
@@ -40,10 +41,12 @@ public class LongCachedClass extends NumberCachedClass {
         return argument;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Long;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
                 || classToTransformFrom == Integer.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java
index df3e6d0..42b6b84 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/NumberCachedClass.java
@@ -29,6 +29,7 @@ public class NumberCachedClass extends CachedClass {
         super(klazz, classInfo);
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Number) {
             return coerceNumber(argument);
@@ -37,6 +38,7 @@ public class NumberCachedClass extends CachedClass {
 
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return classToTransformFrom == null
             || Number.class.isAssignableFrom(classToTransformFrom)
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ObjectCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ObjectCachedClass.java
index 9c281f5..21ef0da 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ObjectCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ObjectCachedClass.java
@@ -26,10 +26,12 @@ public class ObjectCachedClass extends CachedClass {
         super(Object.class,classInfo);
     }
 
+    @Override
     public synchronized CachedClass getCachedSuperClass() {
         return null;
     }
 
+    @Override
     public boolean isAssignableFrom(Class argument) {
         return true;
     }
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ShortCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ShortCachedClass.java
index 917380b..686ef7f 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ShortCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ShortCachedClass.java
@@ -28,6 +28,7 @@ public class ShortCachedClass extends NumberCachedClass {
         this.allowNull = allowNull;
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         if (argument instanceof Short) {
             return argument;
@@ -39,10 +40,12 @@ public class ShortCachedClass extends NumberCachedClass {
         return argument;
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return (allowNull && argument == null) || argument instanceof Short;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return (allowNull && classToTransformFrom == null)
                 || classToTransformFrom == Short.class
diff --git a/src/main/java/org/codehaus/groovy/reflection/stdclasses/StringCachedClass.java b/src/main/java/org/codehaus/groovy/reflection/stdclasses/StringCachedClass.java
index 01b41b5..37b2e90 100644
--- a/src/main/java/org/codehaus/groovy/reflection/stdclasses/StringCachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/stdclasses/StringCachedClass.java
@@ -31,16 +31,19 @@ public class StringCachedClass extends CachedClass {
         super(STRING_CLASS, classInfo);
     }
 
+    @Override
     public boolean isDirectlyAssignable(Object argument) {
         return argument instanceof String;
     }
 
+    @Override
     public boolean isAssignableFrom(Class classToTransformFrom) {
         return  classToTransformFrom == null
               || classToTransformFrom == STRING_CLASS
               || ReflectionCache.isAssignableFrom(GSTRING_CLASS,classToTransformFrom);
     }
 
+    @Override
     public Object coerceArgument(Object argument) {
         return argument instanceof GString ? argument.toString() : argument;
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java b/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
index 588d846..63b0e36 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ComposedClosure.java
@@ -68,28 +68,34 @@ public final class ComposedClosure<V> extends Closure<V> {
         maximumNumberOfParameters = first.getMaximumNumberOfParameters();
     }
 
+    @Override
     public void setDelegate(Object delegate) {
         ((Closure) getOwner()).setDelegate(delegate);
         second.setDelegate(delegate);
     }
 
+    @Override
     public Object getDelegate() {
         return ((Closure) getOwner()).getDelegate();
     }
 
+    @Override
     public void setResolveStrategy(int resolveStrategy) {
         ((Closure) getOwner()).setResolveStrategy(resolveStrategy);
         second.setResolveStrategy(resolveStrategy);
     }
 
+    @Override
     public int getResolveStrategy() {
         return ((Closure) getOwner()).getResolveStrategy();
     }
 
+    @Override
     public Object clone() {
         return new ComposedClosure<V>(first, second);
     }
 
+    @Override
     public Class[] getParameterTypes() {
         return first.getParameterTypes();
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java b/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
index 04870c9..c763099 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ConversionHandler.java
@@ -91,6 +91,7 @@ public abstract class ConversionHandler implements InvocationHandler, Serializab
      * @see #invokeCustom(Object, Method, Object[])
      * @see InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
      */
+    @Override
     public Object invoke(final Object proxy, Method method, Object[] args) throws Throwable {
         if (isDefaultMethod(method) && !defaultOverridden(method)) {
             final VMPlugin plugin = VMPluginFactory.getPlugin();
diff --git a/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java b/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
index 48cbe61..f770dc6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
+++ b/src/main/java/org/codehaus/groovy/runtime/CurriedClosure.java
@@ -127,28 +127,34 @@ public final class CurriedClosure<V> extends Closure<V> {
         return newCurriedParams;
     }
 
+    @Override
     public void setDelegate(Object delegate) {
         ((Closure) getOwner()).setDelegate(delegate);
     }
 
+    @Override
     public Object getDelegate() {
         return ((Closure) getOwner()).getDelegate();
     }
 
+    @Override
     public void setResolveStrategy(int resolveStrategy) {
         ((Closure) getOwner()).setResolveStrategy(resolveStrategy);
     }
 
+    @Override
     public int getResolveStrategy() {
         return ((Closure) getOwner()).getResolveStrategy();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public Object clone() {
         Closure<V> uncurriedClosure = (Closure<V>) ((Closure) getOwner()).clone();
         return new CurriedClosure<V>(index, uncurriedClosure, curriedParams);
     }
 
+    @Override
     public Class[] getParameterTypes() {
         Class[] oldParams = ((Closure) getOwner()).getParameterTypes();
         int extraParams = 0;
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultCachedMethodKey.java b/src/main/java/org/codehaus/groovy/runtime/DefaultCachedMethodKey.java
index 7dd9a35..3ca98a6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultCachedMethodKey.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultCachedMethodKey.java
@@ -33,10 +33,12 @@ public class DefaultCachedMethodKey extends MethodKey{
         this.parameterTypes = parameterTypes;
     }
 
+    @Override
     public int getParameterCount() {
         return parameterTypes.length;
     }
 
+    @Override
     public Class getParameterType(int index) {
         CachedClass c = parameterTypes[index];
         if (c==null) return Object.class;
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
index 23f89d6..79ac33b 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultGroovyMethods.java
@@ -1764,10 +1764,12 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             advance();
         }
 
+        @Override
         public boolean hasNext() {
             return !exhausted;
         }
 
+        @Override
         public E next() {
             if (exhausted) throw new NoSuchElementException();
             E result = next;
@@ -1775,6 +1777,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             return result;
         }
 
+        @Override
         public void remove() {
             if (exhausted) throw new NoSuchElementException();
             delegate.remove();
@@ -8695,15 +8698,18 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             this.index = offset;
         }
 
+        @Override
         public boolean hasNext() {
             return delegate.hasNext();
         }
 
+        @Override
         public Tuple2<E, Integer> next() {
             if (!hasNext()) throw new NoSuchElementException();
             return new Tuple2<>(delegate.next(), index++);
         }
 
+        @Override
         public void remove() {
             delegate.remove();
         }
@@ -8718,15 +8724,18 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             this.index = offset;
         }
 
+        @Override
         public boolean hasNext() {
             return delegate.hasNext();
         }
 
+        @Override
         public Tuple2<Integer, E> next() {
             if (!hasNext()) throw new NoSuchElementException();
             return new Tuple2<>(index++, delegate.next());
         }
 
+        @Override
         public void remove() {
             delegate.remove();
         }
@@ -9968,10 +9977,12 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             advance();
         }
 
+        @Override
         public boolean hasNext() {
             return !exhausted;
         }
 
+        @Override
         public E next() {
             if (exhausted) throw new NoSuchElementException();
             E result = next;
@@ -9979,6 +9990,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             return result;
         }
 
+        @Override
         public void remove() {
             if (exhausted) throw new NoSuchElementException();
             advance();
@@ -10209,16 +10221,19 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             this.num = num;
         }
 
+        @Override
         public boolean hasNext() {
             return num > 0 && delegate.hasNext();
         }
 
+        @Override
         public E next() {
             if (num <= 0) throw new NoSuchElementException();
             num--;
             return delegate.next();
         }
 
+        @Override
         public void remove() {
             delegate.remove();
         }
@@ -10617,10 +10632,12 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             advance();
         }
 
+        @Override
         public boolean hasNext() {
             return !exhausted;
         }
 
+        @Override
         public E next() {
             if (exhausted) throw new NoSuchElementException();
             E result = discards.removeFirst();
@@ -10628,6 +10645,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             return result;
         }
 
+        @Override
         public void remove() {
             if (exhausted) throw new NoSuchElementException();
             delegate.remove();
@@ -10854,10 +10872,12 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             advance();
         }
 
+        @Override
         public boolean hasNext() {
             return !exhausted;
         }
 
+        @Override
         public E next() {
             if (exhausted) throw new NoSuchElementException();
             E result = next;
@@ -10865,6 +10885,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             return result;
         }
 
+        @Override
         public void remove() {
             if (exhausted) throw new NoSuchElementException();
             delegate.remove();
@@ -11062,10 +11083,12 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             prepare();
         }
 
+        @Override
         public boolean hasNext() {
             return buffering || delegate.hasNext();
         }
 
+        @Override
         public E next() {
             if (buffering) {
                 E result = buffer;
@@ -11077,6 +11100,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
             }
         }
 
+        @Override
         public void remove() {
             if (buffering) {
                 buffering = false;
@@ -16569,6 +16593,7 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static TimerTask runAfter(Timer timer, int delay, final Closure closure) {
         TimerTask timerTask = new TimerTask() {
+            @Override
             public void run() {
                 closure.call();
             }
@@ -17410,14 +17435,17 @@ public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static <T> Iterator<T> iterator(final Enumeration<T> enumeration) {
         return new Iterator<T>() {
+            @Override
             public boolean hasNext() {
                 return enumeration.hasMoreElements();
             }
 
+            @Override
             public T next() {
                 return enumeration.nextElement();
             }
 
+            @Override
             public void remove() {
                 throw new UnsupportedOperationException("Cannot remove() from an Enumeration");
             }
diff --git a/src/main/java/org/codehaus/groovy/runtime/DefaultMethodKey.java b/src/main/java/org/codehaus/groovy/runtime/DefaultMethodKey.java
index 97fe495..b6a7b1f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/DefaultMethodKey.java
+++ b/src/main/java/org/codehaus/groovy/runtime/DefaultMethodKey.java
@@ -30,10 +30,12 @@ public class DefaultMethodKey extends MethodKey{
         this.parameterTypes = parameterTypes;
     }
 
+    @Override
     public int getParameterCount() {
         return parameterTypes.length;
     }
 
+    @Override
     public Class getParameterType(int index) {
         Class c = parameterTypes[index];
         if (c==null) return Object.class;
diff --git a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
index ee8abcd..9d07177 100644
--- a/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/EncodingGroovyMethods.java
@@ -89,6 +89,7 @@ public class EncodingGroovyMethods {
 
     private static Writable encodeBase64(final byte[] data, final boolean chunked, final boolean urlSafe, final boolean pad) {
         return new Writable() {
+            @Override
             public Writer writeTo(final Writer writer) throws IOException {
                 int charCount = 0;
                 final int dLimit = (data.length / 3) * 3;
@@ -311,6 +312,7 @@ public class EncodingGroovyMethods {
      */
     public static Writable encodeHex(final byte[] data) {
         return new Writable() {
+            @Override
             public Writer writeTo(Writer out) throws IOException {
                 for (byte datum : data) {
                     // convert byte into unsigned hex string
diff --git a/src/main/java/org/codehaus/groovy/runtime/FlushingStreamWriter.java b/src/main/java/org/codehaus/groovy/runtime/FlushingStreamWriter.java
index 89f2113..dfc1d58 100644
--- a/src/main/java/org/codehaus/groovy/runtime/FlushingStreamWriter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/FlushingStreamWriter.java
@@ -31,16 +31,19 @@ public class FlushingStreamWriter extends OutputStreamWriter {
         super(out);
     }
 
+    @Override
     public void write(char[] cbuf, int off, int len) throws IOException {
         super.write(cbuf, off, len);
         flush();
     }
 
+    @Override
     public void write(int c) throws IOException {
         super.write(c);
         flush();
     }
 
+    @Override
     public void write(String str, int off, int len) throws IOException {
         super.write(str, off, len);
         flush();
diff --git a/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java b/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
index c96780f..5fb8396 100644
--- a/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
+++ b/src/main/java/org/codehaus/groovy/runtime/GroovyCategorySupport.java
@@ -63,6 +63,7 @@ public class GroovyCategorySupport {
             }
         }
 
+        @Override
         public boolean add(CategoryMethod o) {
             usage.incrementAndGet();
             return super.add(o);
@@ -223,6 +224,7 @@ public class GroovyCategorySupport {
             this.metaClass = metaClass;
         }
 
+        @Override
         public boolean isCacheable() { return false; }
 
         /**
@@ -230,6 +232,7 @@ public class GroovyCategorySupport {
          *
          * @param o the object to compare against
          */
+        @Override
         public int compareTo(Object o) {
             CategoryMethod thatMethod = (CategoryMethod) o;
             Class thisClass = metaClass;
diff --git a/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java b/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java
index a838c28..6a6ffd1 100644
--- a/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java
+++ b/src/main/java/org/codehaus/groovy/runtime/HandleMetaClass.java
@@ -45,6 +45,7 @@ public class HandleMetaClass extends DelegatingMetaClass {
         }
     }
 
+    @Override
     public void initialize() {
         replaceDelegate();
         delegate.initialize();
@@ -75,11 +76,13 @@ public class HandleMetaClass extends DelegatingMetaClass {
         return (GroovyObject)delegate;
     }
 
+    @Override
     public Object invokeMethod(String name, Object args) {
         return replaceDelegate().invokeMethod(name, args);
     }
 
     // this method mimics EMC behavior
+    @Override
     public Object getProperty(String property) {
         if(ExpandoMetaClass.isValidExpandoProperty(property)) {
             if(property.equals(ExpandoMetaClass.STATIC_QUALIFIER) ||
@@ -91,22 +94,27 @@ public class HandleMetaClass extends DelegatingMetaClass {
         return Holder.META_CLASS.getProperty(this, property);
     }
 
+    @Override
     public void setProperty(String property, Object newValue) {
         replaceDelegate().setProperty(property, newValue);
     }
 
+    @Override
     public void addNewInstanceMethod(Method method) {
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public void addNewStaticMethod(Method method) {
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public void addMetaMethod(MetaMethod metaMethod) {
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public void addMetaBeanProperty(MetaBeanProperty metaBeanProperty) {
         throw new UnsupportedOperationException();
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
index ede9e4b..f9c7f20 100644
--- a/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/IOGroovyMethods.java
@@ -278,6 +278,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
      */
     public static ObjectInputStream newObjectInputStream(InputStream inputStream, final ClassLoader classLoader) throws IOException {
         return new ObjectInputStream(inputStream) {
+            @Override
             protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
                 return Class.forName(desc.getName(), true, classLoader);
 
@@ -945,6 +946,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
             boolean nextMustRead = true;
             boolean hasNext = true;
 
+            @Override
             public boolean hasNext() {
                 if (nextMustRead && hasNext) {
                     try {
@@ -957,6 +959,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
                 return hasNext;
             }
 
+            @Override
             public String next() {
                 String retval = null;
                 if (nextMustRead) {
@@ -978,6 +981,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
                 return nv;
             }
 
+            @Override
             public void remove() {
                 throw new UnsupportedOperationException("Cannot remove() from a Reader Iterator");
             }
@@ -1010,6 +1014,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
             boolean nextMustRead = true;
             boolean hasNext = true;
 
+            @Override
             public boolean hasNext() {
                 if (nextMustRead && hasNext) {
                     try {
@@ -1022,6 +1027,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
                 return hasNext;
             }
 
+            @Override
             public Byte next() {
                 Byte retval = null;
                 if (nextMustRead) {
@@ -1036,6 +1042,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
                 return retval;
             }
 
+            @Override
             public void remove() {
                 throw new UnsupportedOperationException("Cannot remove() from a DataInputStream Iterator");
             }
@@ -1491,6 +1498,7 @@ public class IOGroovyMethods extends DefaultGroovyMethodsSupport {
     public static Writable filterLine(Reader reader, @ClosureParams(value=SimpleType.class, options="java.lang.String") final Closure closure) {
         final BufferedReader br = new BufferedReader(reader);
         return new Writable() {
+            @Override
             public Writer writeTo(Writer out) throws IOException {
                 BufferedWriter bw = new BufferedWriter(out);
                 String line;
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
index 197a848..03e2fb3 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerHelper.java
@@ -447,6 +447,7 @@ public class InvokerHelper {
     static class NullScript extends Script {
         public NullScript() { this(new Binding()); }
         public NullScript(Binding context) { super(context); }
+        @Override
         public Object run() { return null; }
     }
 
@@ -464,6 +465,7 @@ public class InvokerHelper {
                     // it could just be a class, so let's wrap it in a Script
                     // wrapper; though the bindings will be ignored
                     script = new Script(context) {
+                        @Override
                         public Object run() {
                             Object argsToPass = EMPTY_MAIN_ARGS;
                             try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/InvokerInvocationException.java b/src/main/java/org/codehaus/groovy/runtime/InvokerInvocationException.java
index 8fb5572..8db12f1 100644
--- a/src/main/java/org/codehaus/groovy/runtime/InvokerInvocationException.java
+++ b/src/main/java/org/codehaus/groovy/runtime/InvokerInvocationException.java
@@ -37,6 +37,7 @@ public class InvokerInvocationException extends GroovyRuntimeException {
         super(cause);
     }
 
+    @Override
     public String getMessage() {
         Throwable cause = getCause();
         return (cause==null)?"java.lang.NullPointerException":cause.toString();
diff --git a/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java b/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
index ea08d2f..5223409 100644
--- a/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/IteratorClosureAdapter.java
@@ -38,10 +38,12 @@ public class IteratorClosureAdapter<T> extends Closure {
         super(delegate);
     }
 
+    @Override
     public MetaClass getMetaClass() {
         return metaClass;
     }
 
+    @Override
     public void setMetaClass(MetaClass metaClass) {
         this.metaClass = metaClass;
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/MethodClosure.java b/src/main/java/org/codehaus/groovy/runtime/MethodClosure.java
index 7314c1e..9c251c0 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MethodClosure.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MethodClosure.java
@@ -136,6 +136,7 @@ public class MethodClosure extends Closure {
         throw new UnsupportedOperationException();
     }
     
+    @Override
     public Object getProperty(String property) {
         if ("method".equals(property)) {
             return getMethod();
diff --git a/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java b/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
index 74a4a5a..1c6c5aa 100644
--- a/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
+++ b/src/main/java/org/codehaus/groovy/runtime/MethodRankHelper.java
@@ -274,6 +274,7 @@ public class MethodRankHelper{
             this.score = nameDist + argDist;
         }
 
+        @Override
         public int compareTo(Object o) {
             RankableMethod mo = (RankableMethod) o;
             return score.compareTo(mo.score);
@@ -332,6 +333,7 @@ public class MethodRankHelper{
             this.score = damerauLevenshteinDistance(argumentTypes,cArgs);
         }
 
+        @Override
         public int compareTo(Object o) {
             RankableConstructor co = (RankableConstructor) o;
             return score.compareTo(co.score);
@@ -352,6 +354,7 @@ public class MethodRankHelper{
             this.score = delDistance(name,mp.getName());
         }
 
+        @Override
         public int compareTo(Object o) {
             RankableField co = (RankableField) o;
             return score.compareTo(co.score);
diff --git a/src/main/java/org/codehaus/groovy/runtime/NullObject.java b/src/main/java/org/codehaus/groovy/runtime/NullObject.java
index 12787f4..c481268 100644
--- a/src/main/java/org/codehaus/groovy/runtime/NullObject.java
+++ b/src/main/java/org/codehaus/groovy/runtime/NullObject.java
@@ -46,6 +46,7 @@ public class NullObject extends GroovyObjectSupport {
      * Since this is implemented as a singleton, we should avoid the
      * use of the clone method
      */
+    @Override
     public Object clone() {
         throw new NullPointerException("Cannot invoke method clone() on null object");
     }
@@ -56,6 +57,7 @@ public class NullObject extends GroovyObjectSupport {
      * @param property - the property to get
      * @return a NPE
      */
+    @Override
     public Object getProperty(String property) {
         throw new NullPointerException("Cannot get property '" + property + "' on null object");
     }
@@ -76,6 +78,7 @@ public class NullObject extends GroovyObjectSupport {
      * @param property - the proprty to set
      * @param newValue - the new value of the property
      */
+    @Override
     public void setProperty(String property, Object newValue) {
         throw new NullPointerException("Cannot set property '" + property + "' on null object");
     }
@@ -87,6 +90,7 @@ public class NullObject extends GroovyObjectSupport {
      * @param args - arguments to the method
      * @return a NPE
      */
+    @Override
     public Object invokeMethod(String name, Object args) {
         throw new NullPointerException("Cannot invoke method " + name + "() on null object");
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/NumberAwareComparator.java b/src/main/java/org/codehaus/groovy/runtime/NumberAwareComparator.java
index 6a11b03..6f614e8 100644
--- a/src/main/java/org/codehaus/groovy/runtime/NumberAwareComparator.java
+++ b/src/main/java/org/codehaus/groovy/runtime/NumberAwareComparator.java
@@ -32,6 +32,7 @@ import java.util.Comparator;
 public class NumberAwareComparator<T> implements Comparator<T>, Serializable {
     private static final long serialVersionUID = 9017657289076651660L;
 
+    @Override
     public int compare(T o1, T o2) {
         try {
             return DefaultTypeTransformation.compareTo(o1, o2);
diff --git a/src/main/java/org/codehaus/groovy/runtime/ProcessGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/ProcessGroovyMethods.java
index fc82dc9..1bb6fc7 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ProcessGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ProcessGroovyMethods.java
@@ -443,6 +443,7 @@ public class ProcessGroovyMethods extends DefaultGroovyMethodsSupport {
             }
         }
 
+        @Override
         public void run() {
             doProcessWait();
             synchronized (this) {
@@ -475,6 +476,7 @@ public class ProcessGroovyMethods extends DefaultGroovyMethodsSupport {
             this.app = app;
         }
 
+        @Override
         public void run() {
             InputStreamReader isr = new InputStreamReader(in);
             BufferedReader br = new BufferedReader(isr);
@@ -501,6 +503,7 @@ public class ProcessGroovyMethods extends DefaultGroovyMethodsSupport {
             this.out = out;
         }
 
+        @Override
         public void run() {
             byte[] buf = new byte[8192];
             int next;
diff --git a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
index e8fbd79..422ab8a 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ProxyGeneratorAdapter.java
@@ -877,10 +877,12 @@ public class ProxyGeneratorAdapter extends ClassVisitor {
             }
         }
 
+        @Override
         public Class defineClass(String name, byte[] data) {
             return super.defineClass(name, data, 0, data.length);
         }
 
+        @Override
         public Class<?> loadClass(String name) throws ClassNotFoundException {
             // First check whether it's already been loaded, if so use it
             Class loadedClass = findLoadedClass(name);
diff --git a/src/main/java/org/codehaus/groovy/runtime/ReverseListIterator.java b/src/main/java/org/codehaus/groovy/runtime/ReverseListIterator.java
index 6f312b8..c55791d 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ReverseListIterator.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ReverseListIterator.java
@@ -43,6 +43,7 @@ public class ReverseListIterator<T> implements Iterator<T> {
     /**
      * {@inheritDoc}
      */
+    @Override
     public boolean hasNext() {
         return delegate.hasPrevious();
     }
@@ -50,6 +51,7 @@ public class ReverseListIterator<T> implements Iterator<T> {
     /**
      * {@inheritDoc}
      */
+    @Override
     public T next() {
         return delegate.previous();
     }
@@ -57,6 +59,7 @@ public class ReverseListIterator<T> implements Iterator<T> {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void remove() {
         delegate.remove();
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/ScriptReference.java b/src/main/java/org/codehaus/groovy/runtime/ScriptReference.java
index ed18079..e56756b 100644
--- a/src/main/java/org/codehaus/groovy/runtime/ScriptReference.java
+++ b/src/main/java/org/codehaus/groovy/runtime/ScriptReference.java
@@ -35,10 +35,12 @@ public class ScriptReference extends Reference {
         this.variable = variable;
     }
 
+    @Override
     public Object get() {
         return script.getBinding().getVariable(variable);
     }
 
+    @Override
     public void set(Object value) {
         script.getBinding().setVariable(variable, value);
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/StringBufferWriter.java b/src/main/java/org/codehaus/groovy/runtime/StringBufferWriter.java
index 09ce506..5fd18bc 100644
--- a/src/main/java/org/codehaus/groovy/runtime/StringBufferWriter.java
+++ b/src/main/java/org/codehaus/groovy/runtime/StringBufferWriter.java
@@ -40,6 +40,7 @@ public class StringBufferWriter extends Writer {
     /**
      * Write a single character.
      */
+    @Override
     public void write(int c) {
         buffer.append((char) c);
     }
@@ -51,6 +52,7 @@ public class StringBufferWriter extends Writer {
      * @param offset Offset from which to start writing characters
      * @param length Number of characters to write
      */
+    @Override
     public void write(char[] text, int offset, int length) {
         if ((offset < 0) || (offset > text.length) || (length < 0) || ((offset + length) > text.length) || ((offset + length) < 0)) {
             throw new IndexOutOfBoundsException();
@@ -64,6 +66,7 @@ public class StringBufferWriter extends Writer {
     /**
      * Write a string.
      */
+    @Override
     public void write(String text) {
         buffer.append(text);
     }
@@ -75,6 +78,7 @@ public class StringBufferWriter extends Writer {
      * @param offset offset from which to start writing characters
      * @param length Number of characters to write
      */
+    @Override
     public void write(String text, int offset, int length) {
         buffer.append(text, offset, offset + length);
     }
@@ -89,6 +93,7 @@ public class StringBufferWriter extends Writer {
     /**
      * Flush the stream.
      */
+    @Override
     public void flush() {
     }
 
@@ -97,6 +102,7 @@ public class StringBufferWriter extends Writer {
      * class can be called after the stream has been closed without generating
      * an <tt>IOException</tt>.
      */
+    @Override
     public void close() throws IOException {
     }
 }
diff --git a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
index ed065f5..421c700 100644
--- a/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
+++ b/src/main/java/org/codehaus/groovy/runtime/StringGroovyMethods.java
@@ -544,14 +544,17 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
             length = delegate.length();
         }
 
+        @Override
         public boolean hasNext() {
             return index < length;
         }
 
+        @Override
         public Character next() {
             return delegate.charAt(index++);
         }
 
+        @Override
         public void remove() {
             throw new UnsupportedOperationException("Remove not supported for CharSequence iterators");
         }
@@ -567,14 +570,17 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
             length = delegate.length();
         }
 
+        @Override
         public boolean hasNext() {
             return index < length;
         }
 
+        @Override
         public String next() {
             return Character.toString(delegate.charAt(index++));
         }
 
+        @Override
         public void remove() {
             throw new UnsupportedOperationException("Remove not supported for CharSequence iterators");
         }
@@ -1734,6 +1740,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
         return new Iterator() {
             private boolean done, found;
 
+            @Override
             public boolean hasNext() {
                 if (done) {
                     return false;
@@ -1747,6 +1754,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
                 return found;
             }
 
+            @Override
             public Object next() {
                 if (!found) {
                     if (!hasNext()) {
@@ -1770,6 +1778,7 @@ public class StringGroovyMethods extends DefaultGroovyMethodsSupport {
                 }
             }
 
+            @Override
             public void remove() {
                 throw new UnsupportedOperationException();
             }
diff --git a/src/main/java/org/codehaus/groovy/runtime/WritableFile.java b/src/main/java/org/codehaus/groovy/runtime/WritableFile.java
index ca7b597..055c96e 100644
--- a/src/main/java/org/codehaus/groovy/runtime/WritableFile.java
+++ b/src/main/java/org/codehaus/groovy/runtime/WritableFile.java
@@ -41,6 +41,7 @@ public class WritableFile extends File implements Writable {
         this.encoding = encoding;
     }
 
+    @Override
     public Writer writeTo(final Writer out) throws IOException {
 
         try (Reader reader = (this.encoding == null)
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
index ad62e5f..dcf9a07 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/CallSiteClassLoader.java
@@ -43,6 +43,7 @@ public class CallSiteClassLoader extends ClassLoaderForClassArtifacts {
         super(klazz);
     }
 
+    @Override
     protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
         if (KNOWN_CLASSES.contains(name))
           return getClass().getClassLoader().loadClass(name);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/ClassMetaClassGetPropertySite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/ClassMetaClassGetPropertySite.java
index 749c7bb..7dde456 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/ClassMetaClassGetPropertySite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/ClassMetaClassGetPropertySite.java
@@ -37,6 +37,7 @@ class ClassMetaClassGetPropertySite extends AbstractCallSite {
         metaClass = classInfo.getMetaClass();
     }
 
+    @Override
     public final CallSite acceptGetProperty(Object receiver) {
         if (receiver != aClass
             || version != classInfo.getVersion()) // metaClass is invalid
@@ -45,6 +46,7 @@ class ClassMetaClassGetPropertySite extends AbstractCallSite {
           return this;
     }
 
+    @Override
     public final Object getProperty(Object receiver) throws Throwable{
         try {
             return metaClass.getProperty(aClass, name);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java
index 714561e..bb1ec59 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaClassSite.java
@@ -27,6 +27,7 @@ public class ConstructorMetaClassSite extends MetaClassSite {
         super(site, metaClass);
     }
 
+    @Override
     public Object callConstructor(Object receiver, Object[] args) throws Throwable {
         if (receiver == metaClass.getTheClass()) {
             try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaMethodSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaMethodSite.java
index 0b98ca8..8c3b950 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaMethodSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorMetaMethodSite.java
@@ -47,6 +47,7 @@ public class ConstructorMetaMethodSite extends MetaMethodSite {
         }
     }
 
+    @Override
     public final Object callConstructor(Object receiver, Object[] args) throws Throwable {
         if (receiver == metaClass.getTheClass() // meta class match receiver
            && ((MetaClassImpl)metaClass).getVersion() == version // metaClass still be valid
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorSite.java
index 9f50abe..42d1288 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/ConstructorSite.java
@@ -38,6 +38,7 @@ public class ConstructorSite extends MetaClassSite {
         this.version = metaClass.getVersion();
     }
 
+    @Override
     public Object callConstructor(Object receiver, Object[] args) throws Throwable {
         if (checkCall(receiver, args)) {
             MetaClassHelper.unwrap(args);
@@ -78,6 +79,7 @@ public class ConstructorSite extends MetaClassSite {
             super(site, metaClass, constructor, params);
         }
 
+        @Override
         public final Object callConstructor(Object receiver, Object[] args) throws Throwable {
             if (checkCall(receiver, args)) {
                 try {
@@ -99,6 +101,7 @@ public class ConstructorSite extends MetaClassSite {
             super(site, metaClass, constructor, params);
         }
 
+        @Override
         public Object callConstructor(Object receiver, Object[] args) throws Throwable {
             if (checkCall(receiver, args)) {
                 try {
@@ -118,6 +121,7 @@ public class ConstructorSite extends MetaClassSite {
             super(site, metaClass, constructor, params);
         }
 
+        @Override
         public final Object callConstructor(Object receiver, Object[] args) throws Throwable {
             if (checkCall(receiver, args)) {
                 final Object bean = constructor.invoke(NO_ARGS);
@@ -137,6 +141,7 @@ public class ConstructorSite extends MetaClassSite {
             super(site, metaClass, constructor, params);
         }
 
+        @Override
         public final Object callConstructor(Object receiver, Object[] args) throws Throwable {
             if (checkCall(receiver, args)) {
                 final Object[] newArgs = new Object[] {args[0]};
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePogoPropertySite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePogoPropertySite.java
index d5114e0..39f5d5b 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePogoPropertySite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePogoPropertySite.java
@@ -40,6 +40,7 @@ class GetEffectivePogoPropertySite extends AbstractCallSite {
         this.effective = effective;
     }
 
+    @Override
     public final Object callGetProperty (Object receiver) throws Throwable {
         if (GroovyCategorySupport.hasCategoryInCurrentThread() || !(receiver instanceof GroovyObject) || ((GroovyObject) receiver).getMetaClass() != metaClass) {
             return createGetPropertySite(receiver).getProperty(receiver);
@@ -52,6 +53,7 @@ class GetEffectivePogoPropertySite extends AbstractCallSite {
         }
     }
 
+    @Override
     public final CallSite acceptGetProperty(Object receiver) {
         if (GroovyCategorySupport.hasCategoryInCurrentThread() || !(receiver instanceof GroovyObject) || ((GroovyObject)receiver).getMetaClass() != metaClass) {
             return createGetPropertySite(receiver);
@@ -60,6 +62,7 @@ class GetEffectivePogoPropertySite extends AbstractCallSite {
         }
     }
 
+    @Override
     public final Object callGroovyObjectGetProperty (Object receiver) throws Throwable {
         if (GroovyCategorySupport.hasCategoryInCurrentThread() || !(receiver instanceof GroovyObject) || ((GroovyObject) receiver).getMetaClass() != metaClass) {
             return createGetPropertySite(receiver).getProperty(receiver);
@@ -72,6 +75,7 @@ class GetEffectivePogoPropertySite extends AbstractCallSite {
         }
     }
 
+    @Override
     public final CallSite acceptGroovyObjectGetProperty(Object receiver) {
         if (GroovyCategorySupport.hasCategoryInCurrentThread() || !(receiver instanceof GroovyObject) || ((GroovyObject)receiver).getMetaClass() != metaClass) {
             return createGroovyObjectGetPropertySite(receiver);
@@ -80,6 +84,7 @@ class GetEffectivePogoPropertySite extends AbstractCallSite {
         }
     }
 
+    @Override
     public final Object getProperty(Object receiver) throws Throwable {
         try {
             return effective.getProperty(receiver);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePojoPropertySite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePojoPropertySite.java
index 5399d99..8eb022a 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePojoPropertySite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/GetEffectivePojoPropertySite.java
@@ -48,6 +48,7 @@ public class GetEffectivePojoPropertySite extends AbstractCallSite {
 //        }
 //    }
 
+    @Override
     public final CallSite acceptGetProperty(Object receiver) {
 //        if (GroovyCategorySupport.hasCategoryInCurrentThread() || !(receiver instanceof GroovyObject) || ((GroovyObject)receiver).getMetaClass() != metaClass) {
         if (GroovyCategorySupport.hasCategoryInCurrentThread() || receiver==null || receiver.getClass() != metaClass.getTheClass()
@@ -58,6 +59,7 @@ public class GetEffectivePojoPropertySite extends AbstractCallSite {
         }
     }
 
+    @Override
     public final Object getProperty(Object receiver) throws Throwable {
         try {
             return effective.getProperty(receiver);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/GroovySunClassLoader.java b/src/main/java/org/codehaus/groovy/runtime/callsite/GroovySunClassLoader.java
index 3d504bf..ddc4232 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/GroovySunClassLoader.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/GroovySunClassLoader.java
@@ -64,6 +64,7 @@ public class GroovySunClassLoader extends SunClassLoader {
             ClassReader reader = new ClassReader(asStream);
             final ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
             final ClassVisitor cv = new ClassVisitor(CompilerConfiguration.ASM_API_VERSION, cw) {
+                @Override
                 public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
                     super.visit(version, access, name, signature, "sun/reflect/GroovyMagic", interfaces);
                 }
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/MetaClassConstructorSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/MetaClassConstructorSite.java
index fd1498a..e76399a 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/MetaClassConstructorSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/MetaClassConstructorSite.java
@@ -39,6 +39,7 @@ public class MetaClassConstructorSite extends MetaClassSite {
         version = classInfo.getVersion();
     }
 
+    @Override
     public Object callConstructor(Object receiver, Object[] args) throws Throwable {
         try {
             if (receiver == metaClass.getTheClass()
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/NullCallSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/NullCallSite.java
index 3a6084c..c8fa582 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/NullCallSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/NullCallSite.java
@@ -28,6 +28,7 @@ public final class NullCallSite extends AbstractCallSite {
         super(callSite);
     }
 
+    @Override
     public Object call(Object receiver, Object[] args) throws Throwable {
         if (receiver == null) {
             try{
@@ -40,6 +41,7 @@ public final class NullCallSite extends AbstractCallSite {
         }
     }
     
+    @Override
     public Object getProperty(Object receiver) throws Throwable {
         if (receiver == null) {
             try{
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PerInstancePojoMetaClassSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PerInstancePojoMetaClassSite.java
index 4a1125e..7f9cbec 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PerInstancePojoMetaClassSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PerInstancePojoMetaClassSite.java
@@ -31,6 +31,7 @@ public class PerInstancePojoMetaClassSite extends AbstractCallSite{
         this.info = info;
     }
 
+    @Override
     public Object call(Object receiver, Object[] args) throws Throwable {
         if (receiver != null && info.hasPerInstanceMetaClasses()) {
             try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoGetPropertySite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoGetPropertySite.java
index 7acca4b..3cb5b83 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoGetPropertySite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoGetPropertySite.java
@@ -30,6 +30,7 @@ public class PogoGetPropertySite extends AbstractCallSite {
         this.aClass = aClass;
     }
 
+    @Override
     public CallSite acceptGetProperty(Object receiver) {
         if (receiver== null || receiver.getClass() != aClass)
             return createGetPropertySite(receiver);
@@ -37,6 +38,7 @@ public class PogoGetPropertySite extends AbstractCallSite {
           return this;
     }
 
+    @Override
     public CallSite acceptGroovyObjectGetProperty(Object receiver) {
         if (receiver == null || receiver.getClass() != aClass)
             return createGroovyObjectGetPropertySite(receiver);
@@ -44,6 +46,7 @@ public class PogoGetPropertySite extends AbstractCallSite {
           return this;
     }
 
+    @Override
     public Object getProperty(Object receiver) throws Throwable {
         try{
             return ((GroovyObject)receiver).getProperty(name);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoInterceptableSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoInterceptableSite.java
index 77ffab9..25291a8 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoInterceptableSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoInterceptableSite.java
@@ -39,6 +39,7 @@ public class PogoInterceptableSite extends AbstractCallSite {
       }
     }
 
+    @Override
     public final Object call(Object receiver, Object[] args) throws Throwable {
         if(receiver instanceof GroovyObject) {
             try {
@@ -51,6 +52,7 @@ public class PogoInterceptableSite extends AbstractCallSite {
         }
     }
 
+    @Override
     public Object callCurrent (GroovyObject receiver, Object [] args) throws Throwable {
         return call(receiver, args);
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassGetPropertySite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassGetPropertySite.java
index 377672f..022ac7d 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassGetPropertySite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassGetPropertySite.java
@@ -31,6 +31,7 @@ public class PogoMetaClassGetPropertySite extends AbstractCallSite {
         this.metaClass = metaClass;
     }
 
+    @Override
     public final CallSite acceptGetProperty(Object receiver) {
         if (!(receiver instanceof GroovyObject) || ((GroovyObject)receiver).getMetaClass() != metaClass)
             return createGetPropertySite(receiver);
@@ -38,6 +39,7 @@ public class PogoMetaClassGetPropertySite extends AbstractCallSite {
           return this;
     }
 
+    @Override
     public final CallSite acceptGroovyObjectGetProperty(Object receiver) {
         if (!(receiver instanceof GroovyObject) || ((GroovyObject)receiver).getMetaClass() != metaClass)
             return createGroovyObjectGetPropertySite(receiver);
@@ -45,6 +47,7 @@ public class PogoMetaClassGetPropertySite extends AbstractCallSite {
           return this;
     }
 
+    @Override
     public final Object getProperty(Object receiver) throws Throwable {
         try {
             return metaClass.getProperty(receiver, name);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassSite.java
index 096d038..4ecb003 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaClassSite.java
@@ -31,6 +31,7 @@ public class PogoMetaClassSite extends MetaClassSite {
         super(site, metaClass);
     }
 
+    @Override
     public final Object call(final Object receiver, final Object[] args) throws Throwable {
         if (checkCall(receiver)) {
             try {
@@ -54,6 +55,7 @@ public class PogoMetaClassSite extends MetaClassSite {
         }
     }
 
+    @Override
     public final Object callCurrent(final GroovyObject receiver, final Object[] args) throws Throwable {
         if (checkCall(receiver)) {
             try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java
index a992f3c..3ed328d 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PogoMetaMethodSite.java
@@ -55,6 +55,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
         }
     }
 
+    @Override
     public Object callCurrent(GroovyObject receiver, Object[] args) throws Throwable {
         if(checkCall(receiver, args)) {
             try {
@@ -67,6 +68,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
         }
     }
 
+    @Override
     public Object call(Object receiver, Object[] args) throws Throwable {
         if(checkCall(receiver, args)) {
             try {
@@ -164,6 +166,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
             reflect = ((CachedMethod) super.metaMethod).setAccessible();
         }
 
+        @Override
         public Object invoke(Object receiver, Object[] args) throws Throwable {
             MetaClassHelper.unwrap(args);
             args = metaMethod.coerceArgumentsToClasses(args);
@@ -177,6 +180,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             args = metaMethod.coerceArgumentsToClasses(args);
             return doInvoke(receiver, args, reflect);
@@ -189,6 +193,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             return doInvoke(receiver, args, reflect);
         }
@@ -203,6 +208,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             try {
                 return metaMethod.doMethodInvoke(receiver,  args);
@@ -221,6 +227,7 @@ public class PogoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             try {
                 return metaMethod.invoke(receiver,  args);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassGetPropertySite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassGetPropertySite.java
index f5733e2..58ab708 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassGetPropertySite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassGetPropertySite.java
@@ -27,10 +27,12 @@ public class PojoMetaClassGetPropertySite extends AbstractCallSite {
         super(parent);
     }
 
+    @Override
     public final CallSite acceptGetProperty(Object receiver) {
           return this;
     }
 
+    @Override
     public final Object getProperty(Object receiver) throws Throwable {
         try {
             return InvokerHelper.getProperty(receiver, name);
@@ -39,6 +41,7 @@ public class PojoMetaClassGetPropertySite extends AbstractCallSite {
         }
     }
 
+    @Override
     public Object callGetProperty(Object receiver) throws Throwable {
         try {
             return InvokerHelper.getProperty(receiver, name);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassSite.java
index c1fae7f..846ee9b 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaClassSite.java
@@ -38,6 +38,7 @@ public class PojoMetaClassSite extends MetaClassSite{
         version = classInfo.getVersion();
     }
 
+    @Override
     public Object call(Object receiver, Object[] args) throws Throwable {
         if(checkCall(receiver)) {
           try{
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java
index 7b54125..6d203f4 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/PojoMetaMethodSite.java
@@ -51,6 +51,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
         return metaMethod.doMethodInvoke(receiver,  args);
     }
 
+    @Override
     public Object call(Object receiver, Object[] args) throws Throwable {
         if(checkCall(receiver, args))
           return invoke(receiver,args);
@@ -185,6 +186,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
             reflect = ((CachedMethod) super.metaMethod).setAccessible();
         }
 
+        @Override
         public Object invoke(Object receiver, Object[] args) throws Throwable {
             MetaClassHelper.unwrap(args);
             args = metaMethod.coerceArgumentsToClasses(args);
@@ -198,6 +200,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             args = metaMethod.coerceArgumentsToClasses(args);
             return doInvoke(receiver, args, reflect);
@@ -210,6 +213,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             return doInvoke(receiver, args, reflect);
         }
@@ -224,6 +228,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             try {
                 return metaMethod.doMethodInvoke(receiver,  args);
@@ -242,6 +247,7 @@ public class PojoMetaMethodSite extends PlainObjectMetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             try {
                 return metaMethod.invoke(receiver,  args);
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaClassSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaClassSite.java
index a97fe92..0681204 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaClassSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaClassSite.java
@@ -44,6 +44,7 @@ public class StaticMetaClassSite extends MetaClassSite {
             && version == classInfo.getVersion(); // metaClass still be valid
     }
 
+    @Override
     public final Object call(Object receiver, Object[] args) throws Throwable {
         if (checkCall(receiver)) {
             try {
@@ -56,6 +57,7 @@ public class StaticMetaClassSite extends MetaClassSite {
         }
     }
 
+    @Override
     public final Object callStatic(Class receiver, Object[] args) throws Throwable {
         if (checkCall(receiver)) {
             try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaMethodSite.java b/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaMethodSite.java
index 399594f..c9e6676 100644
--- a/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaMethodSite.java
+++ b/src/main/java/org/codehaus/groovy/runtime/callsite/StaticMetaMethodSite.java
@@ -83,6 +83,7 @@ public class StaticMetaMethodSite extends MetaMethodSite {
            && MetaClassHelper.sameClasses(params, arg1, arg2, arg3, arg4);
     }
 
+    @Override
     public Object call(Object receiver, Object[] args) throws Throwable {
         if(checkCall(receiver, args)) {
             try {
@@ -95,6 +96,7 @@ public class StaticMetaMethodSite extends MetaMethodSite {
         }
     }
 
+    @Override
     public Object callStatic(Class receiver, Object[] args) throws Throwable {
         if(checkCall(receiver, args))
           return invoke(receiver, args);
@@ -126,6 +128,7 @@ public class StaticMetaMethodSite extends MetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             try {
                 return metaMethod.doMethodInvoke(receiver,  args);
@@ -144,6 +147,7 @@ public class StaticMetaMethodSite extends MetaMethodSite {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) throws Throwable {
             try {
                 return metaMethod.invoke(receiver,  args);
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java
index f49fa78..c431f9b 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberDiv.java
@@ -24,10 +24,12 @@ import org.codehaus.groovy.runtime.callsite.CallSite;
 import org.codehaus.groovy.runtime.typehandling.NumberMath;
 
 public final class NumberNumberDiv extends NumberNumberMetaMethod {
+    @Override
     public String getName() {
         return "div";
     }
 
+    @Override
     public Object invoke(Object object, Object[] arguments) {
         return NumberMath.divide((Number) object, (Number) arguments[0]);
     }
@@ -47,70 +49,87 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
     }
 
 
+    @Override
     public CallSite createIntegerInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return createNumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return createNumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return createNumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return createNumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createNumberNumber(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new NumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
@@ -120,6 +139,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -137,6 +157,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -154,6 +175,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -171,6 +193,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -188,6 +211,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -205,6 +229,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -222,6 +247,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -233,6 +259,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             return super.call(receiver, arg);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) {
             return ((Float) receiver).doubleValue() / ((Float) args[0]).doubleValue();
         }
@@ -247,6 +274,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -264,6 +292,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -275,6 +304,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             return super.call(receiver, arg);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) {
             return (Double) receiver / ((Integer) args[0]).doubleValue();
         }
@@ -289,6 +319,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -306,6 +337,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -323,6 +355,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -340,6 +373,7 @@ public final class NumberNumberDiv extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) {
             return math.divideImpl((Number)receiver,(Number)args[0]);
         }
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMetaMethod.java
index 6dcddfb..57f2cd5 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMetaMethod.java
@@ -37,14 +37,17 @@ public abstract class NumberNumberMetaMethod extends CallSiteAwareMetaMethod {
         parameterTypes = NUMBER_CLASS_ARR;
     }
 
+    @Override
     public int getModifiers() {
         return Modifier.PUBLIC;
     }
 
+    @Override
     public Class getReturnType() {
         return NUMBER_CLASS.getTheClass();
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return NUMBER_CLASS;
     }
@@ -59,6 +62,7 @@ public abstract class NumberNumberMetaMethod extends CallSiteAwareMetaMethod {
         }
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         Object firstArg = args[0];
 
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java
index 573634c..62d7aef 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMinus.java
@@ -24,10 +24,12 @@ import org.codehaus.groovy.runtime.callsite.CallSite;
 import org.codehaus.groovy.runtime.typehandling.NumberMath;
 
 public final class NumberNumberMinus extends NumberNumberMetaMethod {
+    @Override
     public String getName() {
         return "minus";
     }
 
+    @Override
     public Object invoke(Object object, Object[] arguments) {
         return NumberMath.subtract((Number) object, (Number) arguments[0]);
     }
@@ -44,70 +46,87 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
     }
 
 
+    @Override
     public CallSite createIntegerInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createNumberNumber(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new NumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
@@ -117,6 +136,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -134,6 +154,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -151,6 +172,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -168,6 +190,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -185,6 +208,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -202,6 +226,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -219,6 +244,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -236,6 +262,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -253,6 +280,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -270,6 +298,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -287,6 +316,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -304,6 +334,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -321,6 +352,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -338,6 +370,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -355,6 +388,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -372,6 +406,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -389,6 +424,7 @@ public final class NumberNumberMinus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) {
             return math.subtractImpl((Number)receiver,(Number)args[0]);
         }
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java
index a326515..2adae51 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberMultiply.java
@@ -24,10 +24,12 @@ import org.codehaus.groovy.runtime.callsite.CallSite;
 import org.codehaus.groovy.runtime.typehandling.NumberMath;
 
 public final class NumberNumberMultiply extends NumberNumberMetaMethod {
+    @Override
     public String getName() {
         return "multiply";
     }
 
+    @Override
     public Object invoke(Object object, Object[] arguments) {
         return NumberMath.multiply((Number) object, (Number) arguments[0]);
     }
@@ -46,70 +48,87 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
     }
 
 
+    @Override
     public CallSite createIntegerInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createNumberNumber(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new NumberNumber(site, metaClass, metaMethod, params, receiver, args);
     }
@@ -119,6 +138,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -136,6 +156,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -153,6 +174,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -170,6 +192,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -187,6 +210,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -204,6 +228,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -221,6 +246,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -238,6 +264,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -255,6 +282,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -272,6 +300,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -289,6 +318,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -306,6 +336,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -323,6 +354,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -340,6 +372,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -357,6 +390,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -374,6 +408,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -391,6 +426,7 @@ public final class NumberNumberMultiply extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object invoke(Object receiver, Object[] args) {
             return math.multiplyImpl((Number)receiver,(Number)args[0]);
         }
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberPlus.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberPlus.java
index 33e2128..605c61e 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberPlus.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/NumberNumberPlus.java
@@ -24,10 +24,12 @@ import org.codehaus.groovy.runtime.callsite.CallSite;
 import org.codehaus.groovy.runtime.typehandling.NumberMath;
 
 public final class NumberNumberPlus extends NumberNumberMetaMethod {
+    @Override
     public String getName() {
         return "plus";
     }
 
+    @Override
     public Object invoke(Object object, Object[] arguments) {
         return NumberMath.add((Number) object, (Number) arguments[0]);
     }
@@ -43,72 +45,90 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
         return NumberMath.add(left, right);
     }
 
+    @Override
     public CallSite createIntegerInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createIntegerDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new IntegerDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createLongDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new LongDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createFloatDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new FloatDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleInteger(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleInteger(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleLong(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleLong(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleFloat(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleFloat(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createDoubleDouble(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new DoubleDouble(site, metaClass, metaMethod, params, receiver, args);
     }
 
+    @Override
     public CallSite createNumberNumber(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         return new NumberNumberCallSite(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]) {
+            @Override
             public Object invoke(Object receiver, Object[] args) {
                 return math.addImpl((Number) receiver, (Number) args[0]);
             }
@@ -125,6 +145,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -142,6 +163,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -159,6 +181,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -176,6 +199,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -193,6 +217,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -210,6 +235,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -227,6 +253,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -244,6 +271,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -261,6 +289,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -278,6 +307,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -295,6 +325,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -312,6 +343,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -329,6 +361,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -346,6 +379,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -363,6 +397,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
@@ -380,6 +415,7 @@ public final class NumberNumberPlus extends NumberNumberMetaMethod {
             super(site, metaClass, metaMethod, params, (Number) receiver, (Number) args[0]);
         }
 
+        @Override
         public final Object call(Object receiver, Object arg) throws Throwable {
             try {
                 if (checkCall(receiver, arg)) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayGetAtMetaMethod.java
index 367a0db..7994b4e 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayGetAtMetaMethod.java
@@ -23,6 +23,7 @@ public abstract class ArrayGetAtMetaMethod extends ArrayMetaMethod {
         parameterTypes = INTEGER_CLASS_ARR;
     }
 
+    @Override
     public String getName() {
         return "getAt";
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayMetaMethod.java
index 4c2243e..630fe6f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayMetaMethod.java
@@ -39,6 +39,7 @@ public abstract class ArrayMetaMethod extends CallSiteAwareMetaMethod {
         return i;
     }
 
+    @Override
     public int getModifiers() {
         return Modifier.PUBLIC;
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayPutAtMetaMethod.java
index 67e57a6..41fa070 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ArrayPutAtMetaMethod.java
@@ -19,10 +19,12 @@
 package org.codehaus.groovy.runtime.dgmimpl.arrays;
 
 public abstract class ArrayPutAtMetaMethod extends ArrayMetaMethod {
+    @Override
     public String getName() {
         return "putAt";
     }
 
+    @Override
     public Class getReturnType() {
         return Void.class;
     }
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java
index d56d930..4244b2a 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class BooleanArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(boolean[].class);
 
+    @Override
     public Class getReturnType() {
         return Boolean.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final boolean[] objects = (boolean[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class BooleanArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof boolean[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java
index 3f52e13..4739fd6 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/BooleanArrayPutAtMetaMethod.java
@@ -34,10 +34,12 @@ public class BooleanArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final boolean[] objects = (boolean[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -45,6 +47,7 @@ public class BooleanArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Boolean))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -57,6 +60,7 @@ public class BooleanArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof boolean[] && args[0] instanceof Integer && args[1] instanceof Boolean)
                     && checkPojoMetaClass()) {
@@ -67,6 +71,7 @@ public class BooleanArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java
index e378f81..4e5af49 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class ByteArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(byte[].class);
 
+    @Override
     public Class getReturnType() {
         return Byte.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final byte[] objects = (byte[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class ByteArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof byte[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java
index 2aba904..2c79b48 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ByteArrayPutAtMetaMethod.java
@@ -34,10 +34,12 @@ public class ByteArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final byte[] objects = (byte[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -49,6 +51,7 @@ public class ByteArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Byte))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -61,6 +64,7 @@ public class ByteArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof byte[] && args[0] instanceof Integer && args[1] instanceof Byte)
                     && checkPojoMetaClass()) {
@@ -71,6 +75,7 @@ public class ByteArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java
index c86fa31..482d391 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class CharacterArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(char[].class);
 
+    @Override
     public Class getReturnType() {
         return Character.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final char[] objects = (char[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class CharacterArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof char[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java
index 039e21c..4371c47 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/CharacterArrayPutAtMetaMethod.java
@@ -35,10 +35,12 @@ public class CharacterArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final char[] objects = (char[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -46,6 +48,7 @@ public class CharacterArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Character))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -58,6 +61,7 @@ public class CharacterArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof char[] && args[0] instanceof Integer && args[1] instanceof Character)
                     && checkPojoMetaClass()) {
@@ -68,6 +72,7 @@ public class CharacterArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java
index 0dac9ab..692abfb 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class DoubleArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(double[].class);
 
+    @Override
     public Class getReturnType() {
         return Double.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final double[] objects = (double[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class DoubleArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof double[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java
index d588d55..f89a2d0 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/DoubleArrayPutAtMetaMethod.java
@@ -36,10 +36,12 @@ public class DoubleArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final double[] objects = (double[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -56,6 +58,7 @@ public class DoubleArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Double))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -68,6 +71,7 @@ public class DoubleArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof double[] && args[0] instanceof Integer && args[1] instanceof Double)
                     && checkPojoMetaClass()) {
@@ -78,6 +82,7 @@ public class DoubleArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java
index 3485f24..5caa586 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class FloatArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(float[].class);
 
+    @Override
     public Class getReturnType() {
         return Float.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final float[] objects = (float[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class FloatArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof float[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java
index 5b70f5e..ebbf2e8 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/FloatArrayPutAtMetaMethod.java
@@ -36,10 +36,12 @@ public class FloatArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final float[] objects = (float[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -56,6 +58,7 @@ public class FloatArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Float))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -68,6 +71,7 @@ public class FloatArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof float[] && args[0] instanceof Integer && args[1] instanceof Float)
                     && checkPojoMetaClass()) {
@@ -78,6 +82,7 @@ public class FloatArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java
index aadcde0..30c4ee5 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class IntegerArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(int[].class);
 
+    @Override
     public Class getReturnType() {
         return Integer.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final int[] objects = (int[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class IntegerArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof int[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java
index 71d4114..34f114d 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/IntegerArrayPutAtMetaMethod.java
@@ -36,10 +36,12 @@ public class IntegerArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final int[] objects = (int[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -56,6 +58,7 @@ public class IntegerArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -68,6 +71,7 @@ public class IntegerArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof int[] && args[0] instanceof Integer && args[1] instanceof Integer)
                     && checkPojoMetaClass()) {
@@ -78,6 +82,7 @@ public class IntegerArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java
index d3f14bb..f31ef1c 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class LongArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(long[].class);
 
+    @Override
     public Class getReturnType() {
         return Long.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final long[] objects = (long[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class LongArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof long[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java
index 097d21f..7d75372 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/LongArrayPutAtMetaMethod.java
@@ -36,10 +36,12 @@ public class LongArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final long[] objects = (long[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -56,6 +58,7 @@ public class LongArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Long))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -68,6 +71,7 @@ public class LongArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof long[] && args[0] instanceof Integer && args[1] instanceof Long)
                     && checkPojoMetaClass()) {
@@ -78,6 +82,7 @@ public class LongArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayGetAtMetaMethod.java
index c2dcfa5..011341f 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class ObjectArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass OBJECT_ARR_CLASS = ReflectionCache.OBJECT_ARRAY_CLASS;
 
+    @Override
     public Class getReturnType() {
         return Object.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return OBJECT_ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] arguments) {
         final Object[] objects = (Object[]) object;
         return objects[normaliseIndex((Integer) arguments[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class ObjectArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayPutAtMetaMethod.java
index 3db454d..556d584 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ObjectArrayPutAtMetaMethod.java
@@ -36,10 +36,12 @@ public class ObjectArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return OBJECT_ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] arguments) {
         final Object[] objects = (Object[]) object;
         final int index = normaliseIndex((Integer) arguments[0], objects.length);
@@ -67,6 +69,7 @@ public class ObjectArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return adjustedNewVal;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -79,6 +82,7 @@ public class ObjectArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java
index d061874..e85e212 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayGetAtMetaMethod.java
@@ -28,19 +28,23 @@ import org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite;
 public class ShortArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
     private static final CachedClass ARR_CLASS = ReflectionCache.getCachedClass(short[].class);
 
+    @Override
     public Class getReturnType() {
         return Short.class;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final short[] objects = (short[]) object;
         return objects[normaliseIndex((Integer) args[0], objects.length)];
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -53,6 +57,7 @@ public class ShortArrayGetAtMetaMethod extends ArrayGetAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object arg) throws Throwable {
             if ((receiver instanceof short[] && arg instanceof Integer)
                     && checkPojoMetaClass()) {
diff --git a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java
index cc615bf..6083b24 100644
--- a/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java
+++ b/src/main/java/org/codehaus/groovy/runtime/dgmimpl/arrays/ShortArrayPutAtMetaMethod.java
@@ -36,10 +36,12 @@ public class ShortArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         parameterTypes = PARAM_CLASS_ARR;
     }
 
+    @Override
     public final CachedClass getDeclaringClass() {
         return ARR_CLASS;
     }
 
+    @Override
     public Object invoke(Object object, Object[] args) {
         final short[] objects = (short[]) object;
         final int index = normaliseIndex((Integer) args[0], objects.length);
@@ -56,6 +58,7 @@ public class ShortArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
         return null;
     }
 
+    @Override
     public CallSite createPojoCallSite(CallSite site, MetaClassImpl metaClass, MetaMethod metaMethod, Class[] params, Object receiver, Object[] args) {
         if (!(args[0] instanceof Integer) || !(args[1] instanceof Short))
             return PojoMetaMethodSite.createNonAwareCallSite(site, metaClass, metaMethod, params, args);
@@ -68,6 +71,7 @@ public class ShortArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
             super(site, metaClass, metaMethod, params);
         }
 
+        @Override
         public Object call(Object receiver, Object[] args) throws Throwable {
             if ((receiver instanceof short[] && args[0] instanceof Integer && args[1] instanceof Short)
                     && checkPojoMetaClass()) {
@@ -78,6 +82,7 @@ public class ShortArrayPutAtMetaMethod extends ArrayPutAtMetaMethod {
                 return super.call(receiver, args);
         }
 
+        @Override
         public Object call(Object receiver, Object arg1, Object arg2) throws Throwable {
             if (checkPojoMetaClass()) {
                 try {
diff --git a/src/main/java/org/codehaus/groovy/runtime/memoize/EvictableCache.java b/src/main/java/org/codehaus/groovy/runtime/memoize/EvictableCache.java
index 306df8b..90c125e 100644
... 10767 lines suppressed ...