Changelog for Groovy 2.4.8

Bug

  • [GROOVY-5396] - Groovy classes can't see package-local properties from a super class
  • [GROOVY-5752] - DelegateASTTransformation#addGetterIfNeeded doesn't take boolean isX accessors into account
  • [GROOVY-5985] - Invalid hash key "serialVersionUID"
  • [GROOVY-6107] - Unable to access an outer class static method from a super call in the inner-class constructor
  • [GROOVY-6175] - invoking Closure property like method fails because of doCall/call asynchronity
  • [GROOVY-6245] - @EqualsAndHashCode assumes get style getters for boolean properties
  • [GROOVY-6468] - Unable to call private method/constructor from static inner class with @CompileStatic
  • [GROOVY-6584] - Cannot use memoize() to cache metaclass method call
  • [GROOVY-6738] - Type checking considers extension methods but not extension properties
  • [GROOVY-6764] - Problem Referring To Statically Imported Constants
  • [GROOVY-6831] - Access to static fields/properties from within nested classes is inconsistent
  • [GROOVY-6862] - Traits dont allow $ in identifiers where normal classes do
  • [GROOVY-6932] - @Log annotation does not check logging enablement inside closures
  • [GROOVY-6947] - NPE in compilation when assigning a value to 'this'
  • [GROOVY-7044] - Cloned NodeBuilder created nodes share values (child nodes) with original node.
  • [GROOVY-7086] - ShortTypeHandling: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String
  • [GROOVY-7109] - Severe Memory Leak Happens when Script Executes
  • [GROOVY-7150] - Redirection of output in javax.script.ScriptEngine.invokeFunction() doesn't work
  • [GROOVY-7185] - Impossible to override method with generic array of Java class.
  • [GROOVY-7291] - Primitive variables with no initial value expression not given default value when referenced within a closure
  • [GROOVY-7340] - GroovyDoc doesn't understand method type parameters
  • [GROOVY-7497] - GroovyDoc reports only last method of a script
  • [GROOVY-7514] - static final fields on trait aren't final
  • [GROOVY-7542] - CompileStatic class generation bug "register with message: rightShiftUnsigned and arguments X"
  • [GROOVY-7558] - Error when referencing private member variables from within a closure
  • [GROOVY-7584] - transient fields in trait are not transient in implementing class
  • [GROOVY-7679] - calling super in Groovy (version 2.4.5) miss the parent class?
  • [GROOVY-7683] - Memory leak when using Groovy as JSR-223 scripting language.
  • [GROOVY-7697] - GroovyScriptEngine.loadScriptByName doesn't support environment variable "groovy.ast"
  • [GROOVY-7699] - collate() on empty list shall return empty list
  • [GROOVY-7713] - CompileStatic checking fails with null returns
  • [GROOVY-7731] - OutOfMemoryError starting from groovy-2.4.5 version.
  • [GROOVY-7748] - SAM & @CompileStatic failure
  • [GROOVY-7774] - Collection addAll fails CompileStatic type checking when adding a collection of subtypes
  • [GROOVY-7787] - leftShift in simple closure won't CompileStatic
  • [GROOVY-7834] - Calling hashCode on IntRange iterates through all elements in the range.
  • [GROOVY-7842] - MarkupTemplateEngine totally broken when used with a Security Manager
  • [GROOVY-7849] - Incompatible covariant array return type
  • [GROOVY-7863] - Statically compiled calls to private outer class methods fail with multiple levels of nesting
  • [GROOVY-7870] - Implicit returns of transformed binary expressions do not have line numbers when statically compiled
  • [GROOVY-7872] - Nested calls between @Lazy static properties throws MissingPropertyException
  • [GROOVY-7873] - Regression performance issue in string methods
  • [GROOVY-7875] - IntRange fail fast on too large a range out by one
  • [GROOVY-7876] - ClassCastException when calling DefaultTypeTransformation#compareEqual
  • [GROOVY-7880] - Diamond Operator for own class causes NullPointerException if Static Compilation is enabled
  • [GROOVY-7884] - GroovyScriptEngineImpl usage of CompilerConfiguration can lead to memory leaks
  • [GROOVY-7888] - Type checker infers wrong type on compound assignment (e.g. += for collection) for property
  • [GROOVY-7907] - Cannot assign value of type java.lang.Object with varargs, parameterized method and @CompileStatic
  • [GROOVY-7912] - MissingPropertyException when referencing a static import in a closure's optional parameters
  • [GROOVY-7913] - ClassInfo.globalClassValue lead to GroovyClassLoader can't unload classes
  • [GROOVY-7916] - MissingPropertyException when accessing a static inner class member from a sub class
  • [GROOVY-7917] - Sub class can't override final static property
  • [GROOVY-7921] - using "this" as the target of an assignment not working with Category annotation
  • [GROOVY-7922] - Static type checking not strict enough in the presence of ambiguous method matching
  • [GROOVY-7924] - groovyc fails with NPE for dynamic method/property use on super
  • [GROOVY-7925] - 'this' and 'super' as LHS of an assignment
  • [GROOVY-7926] - Method that returns void in a Trait with generics produces questionable byte code
  • [GROOVY-7927] - Static type checking
  • [GROOVY-7930] - @SelfType in hierarchy with an interface in the middle
  • [GROOVY-7932] - Cannot call private constructor from closures with @CompileStatic
  • [GROOVY-7933] - Incorrect boxing of boolean primitive types
  • [GROOVY-7935] - Right side of assignment - remove parens or not?
  • [GROOVY-7936] - renaming static imports
  • [GROOVY-7938] - inconsistent access of methods in outer class
  • [GROOVY-7940] - Inconsistent handling of undocumented primitive data types at the @Lazy annotation under use of extends
  • [GROOVY-7948] - tab completion for static imports in groovysh does not work
  • [GROOVY-7951] - MethodCallExpression.transformExpression does not copy generic types
  • [GROOVY-7952] - Property expressions for extension methods starting with 'is' fail STC
  • [GROOVY-7953] - Property expressions for extension methods on primitives fail STC
  • [GROOVY-7955] - Groovydoc fails to parse Java source files containing the diamond operator
  • [GROOVY-7958] - Incorrect parsing of comma-separated variable declaration as single statement after if/while/for
  • [GROOVY-7966] - Change in source order changes output in Java+Groovy joint compilation
  • [GROOVY-7969] - Incorrect modifers on setter for volatile property with @Bindable/@Vetoable
  • [GROOVY-7973] - Class.this not evaluated correctly within a closure within an inner class
  • [GROOVY-7976] - Sort methods that accept a comparator should accept Comparator<? super T> (fix DGM signatures)
  • [GROOVY-7987] - Type checker doesn't flag static method calls to instance methods with otherwise the same signature
  • [GROOVY-7994] - Anonymous inner class believes protected method in parent's superclass returns Object
  • [GROOVY-7997] - calling method having a Bigdecimal parameter with a long produces incorrect bigdecimal
  • [GROOVY-8019] - Strange performance issue using if(true) versus if(1==1)
  • [GROOVY-8035] - Class unloading (PermGen) memory leak with Groovy Shell
  • [GROOVY-8052] - CVE-2016-6814 Security Vulnerability
  • [GROOVY-9388] - pop method does not output the latest element of a sorted list

Documentation

  • [GROOVY-7887] - Typo s/now/know/ in core-domain-specific-languages

Improvement

  • [GROOVY-7472] - Missing uncapitalize method
  • [GROOVY-7663] - Traits enhancement should rename static methodMissing and propertyMissing to static versions when weaving methods
  • [GROOVY-7894] - Extend VariableScope to expose all declared variables
  • [GROOVY-7942] - @Lazy transform creates unneeded getter/setter for backing store field
  • [GROOVY-7946] - StreamingJsonBuilder should support writable values