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