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
- [GROOVY-6822] - Rewrite the JsonBuilder implementation
- [GROOVY-6824] - Rewrite the StreamingJsonBuilder implementation
- [GROOVY-6966] - Type cast methods for Collection
- [GROOVY-7134] - @SelfType annotation for traits
- [GROOVY-7152] - JCenter should use https by default
- [GROOVY-7178] - Reduce memory consumption of respondsTo *
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
- [GROOVY-6859] - Upgrade JLine2 to 2.12
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)