Groovy Changelog

New in version 2.4

July 20th, 2015
  • [GROOVY-7018] - GroovyClassLoader addClasspath RegexPattern issue
  • [GROOVY-7022] - invoking scripts using full path broken in cygwin
  • [GROOVY-7097] - ScriptBase class can't be resolved if not in current directory even if CompilerConf classpath is set
  • [GROOVY-7127] - Dates.isJsonDate only recognizes Javascript Date's toJSON() Format
  • [GROOVY-7159] - STC claims non-existent Diamond in Anonymous Inner Class with Generics
  • [GROOVY-7338] - URL getText(requestProperties) Map doesn't accept a GString
  • [GROOVY-7365] - Compiler crash in the static type checker
  • [GROOVY-7366] - Static imports are missing in generated stubs
  • [GROOVY-7377] - Interpolated variable followed by asterisk in slashy-string causes compiler error
  • [GROOVY-7381] - Setters with non-void return type fail at runtime when statically compiled
  • [GROOVY-7386] - Packed Maven pom.xml reference commons-cli instead of groovy-all
  • [GROOVY-7391] - Indy ignores custom invoker in meta class
  • [GROOVY-7392] - JsonSlurper Fails on Valid JSON
  • [GROOVY-7416] - Problem With CompileStatic And Interface Methods In Abstract Subclass
  • [GROOVY-7424] - NPE in SecureASTCustomizer for interface method declarations
  • [GROOVY-7448] - AbstractConcurrentMap performing rehash() on every insert
  • [GROOVY-7453] - CompileStatic annotation should not support package target
  • [GROOVY-7456] - Builders don't work in Traits
  • [GROOVY-7461] - Groovy doesn't write BOM if UTF-16 alias is used
  • [GROOVY-7462] - groovy.json.internal.Dates instantiates objects without explicitly specifying the miliseconds parameter
  • [GROOVY-7474] - Difference between junit3 and junit 4 shouldFail {...} not described in docs
  • [GROOVY-7476] - JsonSlurper sometimes does not parse escaped double quotes on parsing with JsonParsingUsingCharacterSource
  • [GROOVY-7477] - CompileStatic-related "BUG! exception in phase 'instruction selection'"
  • [GROOVY-7485] - BUG! exception in phase 'semantic analysis'... when trying to call instance method as default for a constructor parameter
  • [GROOVY-7495] - Diamond inheritance of interfaces makes method return type incompatible
  • [GROOVY-7504] - [CVE-2015-3253] Potential remote code execution
  • Improvement:
  • [GROOVY-7425] - Add 'getBytes(Map parameters)' method to the URL class
  • Sub-task
  • [GROOVY-4421] - Casts should have higher precedence than mathematical operators
  • [GROOVY-5185] - Cast operator precedence is incorrect
  • Task:
  • [GROOVY-6268] - New documentation
  • [GROOVY-7470] - Change license for adoc (guide) files to ASLv2

New in version 2.2.1 (December 5th, 2013)

  • Bug:
  • [GROOVY-5014] - Syntax highlighting problem in groovy.ui.Console text editor on empty string expression entering
  • [GROOVY-5385] - StackOverflow Exception when calling super.method, which returns an instance of the corresponding class.
  • [GROOVY-5740] - Cannot use ASTTransformationCustomizer with TimedInterrupt
  • [GROOVY-6186] - Cannot invoke method next() on varible, which is initialized by default, in each\eachWithIndex
  • [GROOVY-6191] - Memory leak in GroovyScriptEngineImpl
  • [GROOVY-6374] - Verify error when coercing Map for a final class
  • [GROOVY-6385] - groovy.bat: Can't use question mark in script parameters
  • [GROOVY-6387] - groovysh completion vulnerable to map types with 'class' entry
  • [GROOVY-6389] - groovysh flawed display of collections
  • [GROOVY-6391] - groovysh: broken alias and register commands
  • [GROOVY-6392] - Groovysh: filename completion of save command broken
  • [GROOVY-6400] - Constructor call with @CompileStatic causes ArrayIndexOutOfBoundsException during compilation
  • [GROOVY-6405] - AccessControlException with Google App Engine and indy version of the Groovy
  • [GROOVY-6411] - Incorrect exception behavior when class has @CompileStatic
  • [GROOVY-6419] - Groovy java.lang.VerifyError
  • [GROOVY-6421] - Newify fails for local variable assignment
  • [GROOVY-6424] - @GrabExclude's group element is documented as optional but the implementation requires it
  • [GROOVY-6426] - groovysh not running using the groovy-all jar
  • [GROOVY-6428] - AutoCloneStyle.SIMPLE doesn't play well with generics
  • [GROOVY-6431] - method resolution with parameter BigInteger fails for argument extending BigInteger
  • [GROOVY-6432] - ASTTransformationCustomizer should support raw Expressions for parameters
  • [GROOVY-6434] - @Newify AST transformation doesn't work for closure
  • [GROOVY-6435] - Static type checking error when assigning BigInteger child to BigInteger var from static context
  • [GROOVY-6436] - Log annotations broken for Turkish locale
  • [GROOVY-6444] - Closures are incorrectly coerced if a method call is done inside a closure
  • Improvement:
  • [GROOVY-6427] - The @Singleton transform should complain if other constructors are found

New in version 2.2.0 (November 22nd, 2013)

  • implicit closure coercion to single-method interfaces and abstract classes
  • a @Memoized transformation to cache the result of side-effect-free method invocations
  • a @BaseScript annotation to define the base script class used by a Groovy script
  • a new DelegatingBaseScript class for easily delegating property access and method calls to a custom object
  • a new log transformation for Log4J2
  • precompiled custom type checking extensions
  • various enhancements to Groovysh, the Groovy command-line shell
  • and various other enhancements and minor improvements, as well as performance improvements

New in version 2.1.0 (January 28th, 2013)

  • offers full support for the JDK 7 “invoke dynamic” bytecode instruction and API,
  • goes beyond conventional static type checking capabilities with a special annotation to assist with documentation and type safety of DSLs and adds static type checker extensions,
  • provides additional compilation customization options,
  • features a meta-annotation facility for combining annotations elegantly,
  • and provides various other enhancements and minor improvements.