Changelog for Groovy 1.9.0-beta-4


  • [GROOVY-3547] - Calling varargs method from Groovy creates varargs array of different type compared to Java
  • [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-4729] - Object.toString() called instead of coerced Map toString closure
  • [GROOVY-4823] - groovy.lang.MissingMethodException if using class extending BigDecimal
  • [GROOVY-4857] - toString() unsupported on proxy
  • [GROOVY-4954] - Currying closure with null as argument fails with NPE
  • [GROOVY-4974] - Bounded generics do not work with inheritance
  • [GROOVY-4980] - Named argument constructor doesn't work for inner classes
  • [GROOVY-4999] - Runtime error on static overloaded mixin method
  • [GROOVY-5000] - Wrong constructor call generated with AIC + closure usage
  • [GROOVY-5003] - [PATCH] Fix the problem in handling bridge methods
  • [GROOVY-5006] - Inappropriate transformation of type from int to BigDecimal
  • [GROOVY-5008] - Integer optimization is not executed
  • [GROOVY-5017] - [PATCH] SimpleTemplateEngine line number is off by one
  • [GROOVY-5018] - FileSystemCompiler#generateFileNamesFromOptions is adding filenames multiple times
  • [GROOVY-5021] - JavaStubCompilationUnit.addSource() should allow other extensions
  • [GROOVY-5026] - NullPointerException using Open JDK caused problems running Grails unit tests
  • [GROOVY-5027] - Groovydoc calculateFirstSentence doesn't recognise html tags as breaks
  • [GROOVY-5029] - XmlSlurper does not close InputStream, leaks file handles/resources
  • [GROOVY-5030] - Calling a method overwritten via metaClass from another method uses the original (non-overwritten) method if the overridden class extends something
  • [GROOVY-5033] - Annotations on a method with optional parameters do not work
  • [GROOVY-5034] - Groovy is producing incorrect generic type signatures for getters that are created by closures
  • [GROOVY-5036] - Date and Calendar JSON serialization yields stackoverflow errors
  • [GROOVY-5037] - Grails functional tests failing due to VerifyError loading classes
  • [GROOVY-5040] - Variables in annotation closures should never be bound to declarations in "enclosing" scopes
  • [GROOVY-5041] - Anonymous inner class constructor call referencing a getter caused NPE at compile time
  • [GROOVY-5046] - incorrect result when using += operator in closure
  • [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-2832] - Allowing user to customize groovysh prompt
  • [GROOVY-3557] - Remove synchronization of isModified method in ExpandoMetaClass to improve performance
  • [GROOVY-4971] - DateGroovyMethods should have the method format(java.util.Date, String, TimeZone)
  • [GROOVY-5025] - Add control on how Global Transforms are loaded/applied
  • [GROOVY-5038] - should say which Groovy version it refers to
  • [GROOVY-5059] - Improve DefaultTypeTransformation.booleanUnbox performance
  • [GROOVY-5072] - Add bytecode view to AST Browser

New Feature

  • [GROOVY-4740] - Allow "groovy" to accept URL to run the script


  • [GROOVY-5071] - make a command line compiler switch to turn on invokedynamic usage



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


  • [GROOVY-5028] - Add method to expand empty elements in XmlNodePrinter