Changelog for Groovy 2.4.0-beta-4

Bug

  • [GROOVY-3457] - GStringTemplateEngine fails to work with >64K strings
  • [GROOVY-4102] - remove timestamp fields for better hotswap
  • [GROOVY-4359] - Generic types are incorrectly shared/resolved within the module
  • [GROOVY-4759] - compiler NPE with some finally blocks with explicit return
  • [GROOVY-4822] - Label before closure
  • [GROOVY-5750] - MissingFieldException when accessing @Lazy property of outer class
  • [GROOVY-5841] - Runtime error with nested classes that have parameterized type
  • [GROOVY-6166] - NPE when mixing anonymous inner class and generics
  • [GROOVY-6344] - ClassFormatError when class name contains invalid chars
  • [GROOVY-6445] - Inner class can't access container class inherited attributes
  • [GROOVY-6460] - Static method not found when called from within closure in child class
  • [GROOVY-6618] - Enum constructor doesn't work properly with variable arguments *
  • [GROOVY-6636] - STC/CS: constructor call with Map argument fails when javabean property has a setter but no getter
  • [GROOVY-6791] - Cannot compile Map<K,V> == null
  • [GROOVY-6799] - Cannot static compile for..in when List interface is extended
  • [GROOVY-6891] - Inconsistent setter selection dynamic and static Groovy
  • [GROOVY-6896] - Assignment chain fails when using @CompileStatic
  • [GROOVY-6989] - .each{..} Closure With Parameter Typed As Object[] Makes Arguments Object[Object[]] *
  • [GROOVY-6998] - groovysh breaks terminal after exit (no chars rendered anymore)
  • [GROOVY-7015] - Groovy static type checking doesn't solve the generic types properly (behavior is different than Java)
  • [GROOVY-7026] - GroovyShell fails to give script constructor or setBinding a binding for "args"
  • [GROOVY-7039] - Access to constant fields in classes implementing constant interfaces erroneously forbidden in @CompileStatic code
  • [GROOVY-7048] - Groovysh: Missing completion for optional_dot ?. and spread-dot *.
  • [GROOVY-7049] - Groovysh: Completion should suggest field notation rather than bean accessors
  • [GROOVY-7054] - Read Only Property not resolved correctly at runtime (w/CompileDynamic)
  • [GROOVY-7055] - Groovysh: Command hyphen checker breaks sane code cases
  • [GROOVY-7056] - AnnotationCollector unusable in external jar when used in stub generation
  • [GROOVY-7057] - JsonSlurper with type LAX throws exception on comments in arrays
  • [GROOVY-7065] - ReturnAdder shouldn't add return if there's one in a finally block
  • [GROOVY-7071] - Improve StringGroovyMethods typing info for better @CompileStatic integration
  • [GROOVY-7091] - Cloning with AutoClone results in Null Pointer Exception
  • [GROOVY-7096] - Groovydoc needlessly initialises classes
  • [GROOVY-7104] - Default methods on closures coerced to interfaces don't work
  • [GROOVY-7110] - Error while popping argument from operand stack tracker
  • [GROOVY-7113] - Problem With Stubs Related To Class Which Implements A Trait
  • [GROOVY-7115] - @CompileStatic: Chained assignment to delegate property broken
  • [GROOVY-7119] - Callsite helper class generation cannot handle some methods
  • [GROOVY-7120] - closure class my contain invalid chars
  • [GROOVY-7122] - Static type checking error at Iterable<T> loop
  • [GROOVY-7123] - In traits field assignment is not an expression
  • [GROOVY-7124] - Issue when a the version of a class in local SDK is different from compiled one
  • [GROOVY-7132] - JsonSlurper throws exception if reader does not fill complete char buffer
  • [GROOVY-7133] - NoClassDefFoundError: [Lint;
  • [GROOVY-7138] - Calling super.foo() from a closure fails if code is statically compiled
  • [GROOVY-7143] - groovy.json.DateFormatThreadLocal creates a memory leak
  • [GROOVY-7145] - Safe navigation operator does not perform null-check for field access under CompileStatic
  • [GROOVY-7146] - VerifyError when coercing at runtime a method that uses double or long
  • [GROOVY-7149] - @CompileStatic 'Access to <property> is forbidden' with abstract base class and interface
  • [GROOVY-7176] - Trait missing as a keyword in Groovy documentation

Improvement

Sub-task

  • [GROOVY-2049] - Provide some auto-overloading between int and String values
  • [GROOVY-2500] - Assignment calls the wrong setter, depending on order of declaration
  • [GROOVY-5351] - Malformed class names for closures in inner classes *
  • [GROOVY-5754] - Referencing an interface inner class from implementor doesn't work
  • [GROOVY-6084] - Assignment operator does not dispatch to overloaded setter methods

Task

Wish

  • [GROOVY-6956] - Align the parameters of @DelegatesTo and @ClosureParams
  • [GROOVY-7085] - Add DefaultGroovyMethods.size(Iterable)

* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)