Changelog for Groovy 2.4.6
Bug
- [GROOVY-2178] - Shell can not handle multi-line list defs
- [GROOVY-2242] - Missing information in Javadoc of ExpandoMetaClass.enableGlobally()
- [GROOVY-3341] - MissingMethodException in Builder is misleading
- [GROOVY-4698] - Possible memory leak in Tomcat
- [GROOVY-4888] - groovy console script execution output appears in all output windows
- [GROOVY-6067] - MetaClassImpl triggers new entries for maps with default
- [GROOVY-6352] - Type checker ignores wrong number of constructor arguments
- [GROOVY-6669] - Compile in groovyConsole instantiates class
- [GROOVY-6787] - type checker does not check generics bounds of wildcards properly
- [GROOVY-6835] - flow typing activated by if statement doing an "instanceof" check doesn't work as expected with interface types
- [GROOVY-6922] - JsonSlurper loses trailing 0's in numbers (regression in Groovy 2.3)
- [GROOVY-6958] - null != NullObject when using Categories
- [GROOVY-7036] - An interface implementation (override) with a method including a default parameter value does not compile
- [GROOVY-7074] - DelegatingScript does not work with Builder as delegate
- [GROOVY-7105] - Oracle Thin Driver Fails with an Exception in Groovy 2.3.x
- [GROOVY-7170] - STC error If we use java.lang.Integer as Target Type with method generics
- [GROOVY-7342] - last enum value is hidden if annotated
- [GROOVY-7363] - Frequent compilation error on cascading generic types
- [GROOVY-7378] - Spaces in JAVA_OPTS env var prevent launching of groovy
- [GROOVY-7420] - Cannot choose between primitive and object variants of an overloaded method
- [GROOVY-7442] - spread-dot operator within assert isn't expected with @CompileStatic
- [GROOVY-7538] - Compiler crash in the static type checker with self-referencing generic type
- [GROOVY-7587] - Groovy 2.2 and 2.4 all fail to execute almost any script with Java 9 JIGSAW preview builds
- [GROOVY-7596] - src/test/org/codehaus/groovy/ast/LineColumnCheck.txt file missing header in source release
- [GROOVY-7597] - Static Compiler tries to cast delegate to target type of property accessor
- [GROOVY-7598] - type checking with generics
- [GROOVY-7610] - Null safe is call throws VerifyError when used as condition with CompileStatic
- [GROOVY-7618] - Parameterless closure to SAM coercion causes NPE during instruction selection with STC
- [GROOVY-7621] - Memory Leak (metaClassRegistry) unable to remove metaClass based on instances
- [GROOVY-7623] - IBM Java (J9) ClassValue works correctly so should use it by default
- [GROOVY-7627] - Property calls are not correctly type checked if the setter parameter type or getter return type are not the field type
- [GROOVY-7630] - JsonSlurper LAX parser with invalid number
- [GROOVY-7631] - @CompileStatic compiles 0 != null to false
- [GROOVY-7639] - NPE when using safe traversal operator with CompileStatic
- [GROOVY-7644] - ExternalizeMethods generates incorrect bytecode for statically compiled nested classes
- [GROOVY-7645] - Stub generator unescapes escaped backslashes in String annotation values
- [GROOVY-7649] - Grape.resolve() always fails after first unresolved dependency
- [GROOVY-7650] - CLONE - collectEntries throws cryptic error when used with split(delimiter, limit)
- [GROOVY-7652] - Float/Double trunc methods perform rounding for negative values
- [GROOVY-7656] - Spread safe method calls on list literals result in the list expression being evaluated twice (SC)
- [GROOVY-7665] - JsonSlurperCharSource decimal parsing producing unexpected results
- [GROOVY-7675] - Compiler customization builder not resolve secureAst properties
- [GROOVY-7688] - Using spread operator on function with compile static results in two calls to function
- [GROOVY-7694] - Results of spread safe method calls should be stored in temporary variables
- [GROOVY-7696] - Bug with @TypeChecked and generic properties of Java classes used in binary expressions
- [GROOVY-7698] - @CompileStatic safe navigation is broken for property style non-synthetic setter calls
- [GROOVY-7702] - @CompileStatic and the method with(Closure) seem to determine wrong type
- [GROOVY-7705] - CompileStatic closure accessing "thisObject" private field: setProperty instead of synthetic method
- [GROOVY-7707] - StreamingJsonBuilder produces IllegalStateException when using unescaped output
- [GROOVY-7709] - NPE with ConvertedClosure
- [GROOVY-7710] - Random resolution of an overloaded method with arrays as last parameter called without an argument
- [GROOVY-7711] - Wrong method resolution for an overridden method with varargs and covariant return type
- [GROOVY-7715] - ulimit use is not supported on NonStop
- [GROOVY-7716] - groovy.json.internal.FastStringUtils.StringImplementation#toCharArray fails on jdk9
- [GROOVY-7717] - StaticTypeCheckingTestCase#shouldFailWithMessages erroneously passes
- [GROOVY-7718] - java.lang.ClassFormatError: Illegal class name on runtime cast array to trait
- [GROOVY-7726] - Groovysh doc command fails when using Java 9
- [GROOVY-7742] - CompileStatic stackoverflow with generic method with different placeholder as type argument
- [GROOVY-7747] - Generated Java stub for enum with abstract method is invalid
Documentation
- [GROOVY-7524] - Document that mixing TupleConstructor and InheritConstructors will likely not give you what you want
- [GROOVY-7533] - GroovyInterceptions.png has an inconsistency
- [GROOVY-7592] - Problem in switch statement docs
- [GROOVY-7603] - Update groovy docs for Category
- [GROOVY-7605] - Improve docs for MetaClass getMethods vs getMetaMethods
- [GROOVY-7625] - document why slashy strings allow brackets but double quoted strings do not
- [GROOVY-7736] - Argfiles not documented for groovyc
Improvement
- [GROOVY-7546] - Misleasing error message for null + something-that-is-not-a-string
- [GROOVY-7583] - Unnecessary Instantiation on DefaultGroovyMethods.numberAwareCompareTo
- [GROOVY-7612] - GroovyDoc should allow timestamp/version stamp info (hidden info embedded in HTML) to be omitted
- [GROOVY-7626] - Allow security managers to prevent system property access for Indy
- [GROOVY-7668] - Better error-message for AST transformation when binary compatibility changes
- [GROOVY-7703] - Add support for Iterable with Closure to JsonBuilder/StreamingJsonBuilder
- [GROOVY-7706] - StreamingJsonBuilder should supported nested closures
- [GROOVY-7708] - StreamingJsonBuilder doesn't define DelegatesTo on some methods, impacting @CompileStatic usage
- [GROOVY-7735] - Closures should be generated as public classes
- [GROOVY-7737] - Provide static methods in GeneralUtils to create ThrowStatement and CatchStatement
- [GROOVY-7739] - Groovsh code-completion should display groovy jdk enhancements of java.io.file
- [GROOVY-7740] - Groovsh code-completion should display groovy jdk enhancements of String
Task
- [GROOVY-7660] - gradle/utils.gradle: remove unused imports + general housekeeping