Changelog for Groovy 1.8.4


  • [GROOVY-3547] - Calling varargs method from Groovy creates varargs array of different type compared to Java
  • [GROOVY-4290] - Parse error when using method call w/o parens in method-level annotation closure
  • [GROOVY-4471] - NPE in property access in anonymous inner classes
  • [GROOVY-4529] - GroovyClassLoader script caching not working properly if scripts not in root dir
  • [GROOVY-4658] - CLONE -problem compiling @Delegate to an interface that extends another interface (handle default args case)
  • [GROOVY-4729] - Object.toString() called instead of coerced Map toString closure
  • [GROOVY-4812] - Problem Parsing Expression With 1.8.0
  • [GROOVY-4970] - Method call expression parsed differently in 1.8 compared to 1.7
  • [GROOVY-4988] - JsonSlurper fails to correctly parse strings containing some escaped character sequences
  • [GROOVY-5049] - File.getText() should close the streams
  • [GROOVY-5052] - CharsetToolkit javadoc references private guessEncoding() method in the example usage
  • [GROOVY-5056] - ?TreeSet? Comparators not correctly comparing everything - Compares only a subset
  • [GROOVY-5076] - the shorthand notation for Grab isn't working correctly
  • [GROOVY-5089] - Unnecessary unboxing and casting in boolean handling in generated bytecode
  • [GROOVY-5090] - Groovy compiler generates invalid byte code for local boolean variables that later on are referenced in a closure
  • [GROOVY-5102] - Unrelated changes cause BigDecimal division to return Double
  • [GROOVY-5112] - "A transform used a generics containing ClassNode" error messages for @Delegate
  • [GROOVY-5114] - String[] to Set coercion seems broken in some cases
  • [GROOVY-5180] - Enum Comparison results in incorrect map behavior when using add assignment operator


  • [GROOVY-3557] - Remove synchronization of isModified method in ExpandoMetaClass to improve performance
  • [GROOVY-5059] - Improve DefaultTypeTransformation.booleanUnbox performance
  • [GROOVY-5088] - @Immutable should support java.util.UUID
  • [GROOVY-5095] - MetaClassRegistryChangeEventListener doesn't provide a way to get a reference to the old meta class
  • [GROOVY-5100] - Unnecessary castToType when boxed type subclasses or implements the target type
  • [GROOVY-5118] - Make TupleConstructor work with enums

New Feature

  • [GROOVY-4789] - Add method on Date to parse strings created with date.toString()


  • [GROOVY-5066] - [PATCH] fix a todo in AstBuilderFromSpecificationTest.testSpreadException
  • [GROOVY-5067] - [PATCH] AstBuilderFromSpecificationTest.testFieldExpression sets an incorrect modifier to FieldNode