Groovy Changelog

What's new in Groovy 2.4.6

Feb 22, 2016
  • 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-7535] - Groovy category throwing MissingMethodException and MissingPropertyException when using multiple threads
  • [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-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

New in Groovy 2.4.5 (Sep 28, 2015)

  • Bug:
  • [GROOVY-7164] - @CompileStatic transform gives unexpected result for default constructor
  • [GROOVY-7387] - Trait compilation error: IllegalArgumentException: Comparison method violates its general contract!
  • [GROOVY-7501] - Builder class name should not contain package name
  • [GROOVY-7503] - Builder with Initializer strategy and no properties results in ClassFormatError
  • [GROOVY-7509] - Problem With Stub Generator And Static Import Aliases
  • [GROOVY-7518] - hashCode() throws NPE when using @CompileStatic with @EqualsAndHashCode
  • [GROOVY-7519] - JsonOuput.toJson() leads to StackOverflowException
  • [GROOVY-7520] - Improve unimplemented message for abstract methods
  • [GROOVY-7548] - @Grab should provide a way to set system properties
  • [GROOVY-7551] - groovy-all has a dependency on com.googlecode:openbeans that is not available on Maven Central
  • [GROOVY-7553] - Path.write() appends when encoding parameter present
  • [GROOVY-7564] - InvokerHelper verbose printing wrongly escapes backslashes
  • [GROOVY-7586] - Groovysh does not print the exception class
  • Documentation:
  • [GROOVY-7556] - Use better example for Closure composition
  • [GROOVY-7577] - Groovy class docs all have ASF license as their explanation
  • Improvement:
  • [GROOVY-7241] - Add save prompts for buffers without a file
  • [GROOVY-7588] - Improve StreamingJsonBuilder support for @CompileStatic
  • [GROOVY-7589] - Support for unescaped output in StreamingJsonBuilder
  • [GROOVY-7590] - Improve StreamingJsonBuilder support for @CompileStatic
  • [GROOVY-7591] - Use of ClassValue causes major memory leak
  • Task:
  • [GROOVY-7459] - leverage Ant javadoc fix rather than have our own copy of Oracle fix class

New in Groovy 2.4.4 (Jul 16, 2015)

  • Bug:
  • [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 Groovy 2.4.3 (Mar 25, 2015)

  • Bug:
  • [GROOVY-6757] - Explicit type hints are not respected
  • [GROOVY-7307] - Narrower generic type not taken into account when calling another generic method
  • [GROOVY-7316] - CompileStatic cannot infer generic return type
  • [GROOVY-7355] - VerifyError if a closure shared variable of a foreach style loop is used with @CompileStatic
  • [GROOVY-7356] - Compiler internal error if inside an optimized foreach loop and the body contains a try/catch block
  • [GROOVY-7357] - Optimized foreach loops should perform a null check
  • [GROOVY-7358] - Optimized foreach loops should handle "continue" properly
  • [GROOVY-7359] - CompileStack#removeVar: tried to remove a temporary variable with index 2 in wrong order
  • [GROOVY-7361] - VerifyError when private variable is used in synchronized block
  • [GROOVY-7364] - Invalid type inference with a generic method / return type and optional parameter
  • Improvement:
  • [GROOVY-6123] - Cannot use @CompileStatic with loop over Enumeration
  • [GROOVY-6240] - static type checker cannot infer type of for loop variable from map

New in Groovy 2.4.0 Beta 1 (Jun 12, 2014)

  • Bug:
  • [GROOVY-3971] - adding method to class in ASTBuilder not working
  • [GROOVY-6755] - Bad type resolution causing bad classes and TypeNotPresentExceptions with joint compilation, deep generics and star imports
  • [GROOVY-6762] - Groovy won't run in OSGI Java 7 environment
  • [GROOVY-6770] - The method NioGroovyMethods#write does not truncate the content of a file
  • [GROOVY-6793] - Module descriptors should be read in UTF-8
  • Improvement:
  • [GROOVY-2900] - Allow Ant targets declaration by AntBuilder without immediate execution.
  • [GROOVY-6563] - groovysh: completion candidates could use ANSI styles
  • [GROOVY-6622] - groovysh: completion: static members should only be shown for static context
  • [GROOVY-6623] - Groovysh: improve interpreter_mode likeness
  • [GROOVY-6739] - Allow to implement and register a type checking extension as a subclass of TypeCheckingExtension
  • [GROOVY-6752] - groovysh Main not customizable and buggy w.r.t. AnsiConsole
  • [GROOVY-6753] - groovysh file commands provide ambiguous output
  • [GROOVY-6754] - groovysh positional argument terminates groovysh after evaluation
  • [GROOVY-6839] - @PackageScope could be also allowed for constructors
  • [GROOVY-6861] - Make Groovy run on Android
  • Task:
  • [GROOVY-6758] - Upgrade Ant to 1.9.4
  • [GROOVY-6759] - Upgrade ASM to 5.0.2
  • [GROOVY-6796] - Upgrade GPars to 1.2.1
  • [GROOVY-6853] - upgrade Ivy to 2.4.0-rc1
  • [GROOVY-6859] - Upgrade JLine2 to 2.12

New in Groovy 2.3.3 (Jun 12, 2014)

  • Bug:
  • [GROOVY-6412] - CLONE - Incorrect parameter for annotations throws compilation exception with obfuscated message
  • [GROOVY-6804] - [Static type checking] - Reference to method is ambiguous. Cannot choose between
  • [GROOVY-6811] - Bug in the constructor of anonymous inner class
  • [GROOVY-6834] - False positive variable scoping error when using AIC in combination with logging AST transform
  • [GROOVY-6841] - BUG! exception in phase 'semantic analysis'
  • [GROOVY-6846] - DGM.retainAll() has wrong generic type on Closure condition
  • [GROOVY-6851] - Tenary operator with @CompileStatic in constructor results in ArrayIndexOutOfBoundsException
  • [GROOVY-6856] - Generics and static type checking: "Cannot return value of type W on method returning type W"
  • [GROOVY-6857] - JsonSlurper.parse with byte array throws stack overflow exception
  • Improvement:
  • [GROOVY-6850] - Allow compilation to JDK8 bytecode

New in Groovy 2.3.2 (May 28, 2014)

  • Sub-task:
  • [GROOVY-6373] - 'log' field introduced via @Slf4j not accessible in inner class of @CompileStatic class
  • Bug:
  • [GROOVY-5996] - Sql#executeInsert does not return list of auto-generated keys
  • [GROOVY-6258] - groovydoc information loss when using generics
  • [GROOVY-6342] - @CompileStatic + Elvis operator cause null pointers to be thrown
  • [GROOVY-6437] - Sql.withTransaction() doesn't rollback on checked exceptions
  • [GROOVY-6612] - GroovyRowResult case insensitive inconsistency
  • [GROOVY-6774] - BuilderASTTransformation uses wrong class loader to load builder strategy
  • [GROOVY-6775] - GroovyDoc reports Exception: groovy.lang.ReadOnlyPropertyException: Cannot set readonly property: comparator for class: java.util.TreeMap
  • [GROOVY-6784] - Problem with GroovyConsole allow interruption and @CompileStatic
  • [GROOVY-6798] - Fix autocompletion of map entries in Groovy shell
  • [GROOVY-6806] - The type checker should use the transform loader instead of the source unit loader for extension methods
  • [GROOVY-6808] - Closures may have wrong inner class attributes
  • [GROOVY-6810] - GroovyCastException on type handling
  • [GROOVY-6815] - IntelliJ sees proper 2.3.1 release as 'groovy-2.3.1.SNAPSHOT'
  • [GROOVY-6819] - IncompatibleClassChangeError when using closures
  • [GROOVY-6820] - The type checker disallows the Outer.this notation
  • [GROOVY-6821] - Calling outer class method inside "super" call in constructor fails with static compilation
  • [GROOVY-6823] - Static compiler does not always make direct method call for getProperty in an inner class
  • [GROOVY-6828] - jarjar assembly missing classes required by GroovyConsole
  • Improvement:
  • [GROOVY-6807] - BaseTemplate could add a default toString implementation for debugging
  • [GROOVY-6817] - groovy.sql.Sql#execute doesn't handle invoking SQL that returns multiple results
  • New Feature:
  • [GROOVY-3504] - DataSet classes could support batch operations

New in Groovy 2.3.0 (May 5, 2014)

  • Includes all the changes featured in the previous Beta versions

New in Groovy 2.3.0 RC 2 (Apr 29, 2014)

  • Bug:
  • [GROOVY-5459] - grape command and help is wrong command line structure
  • [GROOVY-6254] - groovydoc fails when java files start with single line comments
  • [GROOVY-6706] - Custom base script abstract method throws NPE with the @BaseScript annotation on imports
  • [GROOVY-6714] - GroovyDoc omits and/or misplaces documentation for methods in .java files.
  • [GROOVY-6722] - Compiler doesn't recognize covariant array of generics
  • [GROOVY-6724] - Missing temporary type information check if a receiver has a property with generics
  • [GROOVY-6725] - XML parsing error during grape uninstall
  • [GROOVY-6726] - index entries of classes are missing in index-all.html
  • [GROOVY-6729] - FirstParam.FirstGenericType don't works whe the method returns generic type
  • Task:
  • [GROOVY-6727] - Upgrade gpars to 1.2.0

New in Groovy 2.3.0 RC 1 (Apr 25, 2014)

  • Bug:
  • [GROOVY-6255] - XMLSlurper accessing xml:id
  • [GROOVY-6356] - Working with namespaced attributes awkward with XmlSlurper
  • [GROOVY-6671] - Types not inferred when coercing closures of generic method return type
  • [GROOVY-6674] - The JsonSlurper returns the wrong value type for floating point numbers.
  • [GROOVY-6692] - trait's groovyProxy class doesn't dispatch String#toString()
  • [GROOVY-6694] - Static method call within trait is not transformed properly
  • [GROOVY-6700] - Deprecate old groovy.util.GroovyAssert class in favor of the new Groovy 2.3 groovy.test.GroovyAssert class
  • [GROOVY-6701] - index entries of same method name are missing in index-all.html
  • [GROOVY-6702] - Trait, public fields & as-operator
  • [GROOVY-6708] - Instantiating traits with generics that extend traits with generics does not compile
  • Improvement:
  • [GROOVY-5461] - Make MarkupBuilder.getMkp() return MarkupBuilderHelper instead of Object
  • [GROOVY-6698] - Cleanup Gradle build in preparation for Gradle 2
  • New Feature:
  • [GROOVY-6604] - PojoBuilder New Feature Proposal
  • [GROOVY-6709] - withCloseable{} DGM method for Closeable
  • Task:
  • [GROOVY-6719] - Upgrade to Log4j 2 RC1

New in Groovy 2.3.0 Beta 2 (Apr 11, 2014)

  • Bug:
  • [GROOVY-6471] - AccessControlException when compiling scripts on the fly with Google App Engine dev server
  • [GROOVY-6621] - groovy.util.Node#text incorrect when value is a NodeList
  • [GROOVY-6666] - Unexpected NullPointerException
  • [GROOVY-6670] - Cannot coerce closure to SAM type when calling method of generic type
  • [GROOVY-6672] - ClassFormatError if trait (accidentally) "extends" interface
  • [GROOVY-6676] - Closure parameter type inference error if the receiver is a delegate type
  • [GROOVY-6683] - XmlParser trims text by default
  • [GROOVY-6686] - Initial expressions are not transformed in traits
  • [GROOVY-6687] - Traits aren't detected as implementing abstract methods
  • [GROOVY-6691] - Cannot extend trait with generic parameter
  • Improvement:
  • [GROOVY-6544] - SourceAwareCustomizer should combine SourceUnit+ClassNode
  • [GROOVY-6553] - jarjar should be used with the "normal" groovy.jar too
  • [GROOVY-6665] - maxRows in Groovy.sql.Sql goes one too far
  • [GROOVY-6678] - XmlParser should provide a trimIgnorableWhitespace setting
  • [GROOVY-6682] - DOMCategory should not trim whitespace by default
  • [GROOVY-6685] - Align naming for XmlParser/XmlSlurper/DOMCategory whitespace handling
  • New Feature:
  • [GROOVY-2115] - text() method on NodeChild with XmlSlurper returns composite. Need just local text.
  • [GROOVY-6673] - Reflection API for Traits
  • Task:
  • [GROOVY-6690] - Upgrade testng to 6.8.8

New in Groovy 2.3.0 Beta 1 (Apr 5, 2014)

  • Sub-task:
  • [GROOVY-5923] - CompileStatic: closure dispatch is sometimes not type checked
  • Bug:
  • [GROOVY-4744] - Fail to extend Java class with public final String getProperty(String s)
  • [GROOVY-5249] - Avoid unnecessary locking in ClassInfo.getMetaClass
  • [GROOVY-5842] - Runtimer error when types down match with Map and Map.Entry when using @CompileStatic
  • [GROOVY-5864] - @AutoExternalize doesn't create no-argument constructor
  • [GROOVY-5899] - withObject[Output|Input]Stream - auto detect 'it' type
  • [GROOVY-6314] - ResourceGroovyMethods uses BufferedWriter/BufferedOutputStream
  • [GROOVY-6327] - Some source files still have \r\n line endings
  • [GROOVY-6329] - @Delegate should support including/excluding which methods are delegated to (and optionally complain if multiple exist) - advanced use cases
  • [GROOVY-6330] - Groovy not checking generics information correctly for covariant methods implementing interfaces
  • [GROOVY-6337] - weird verify error with TupleConstructor and Lazy
  • [GROOVY-6440] - Upgrade to Gradle 1.9
  • [GROOVY-6451] - Support repository roots in @GrabResolver should work correctly for relative hrefs
  • [GROOVY-6456] - AbstractHttpServlet.applyResourceNameMatcher race condition
  • [GROOVY-6501] - Decouple AST transformation from its interface via ASTTransformationCustomizer
  • [GROOVY-6511] - Illegal use of non virtual function call when compiling with JDK 8
  • [GROOVY-6524] - Implicit closure coercion conflicts with DGM methods in type checked mode
  • [GROOVY-6548] - groovysh: Import command is vulnerable and ugly
  • [GROOVY-6550] - VerifyError when instantiating class that has Java 8 default method in its ancestry
  • [GROOVY-6559] - JsonOutput does not escape single char (char/Character)
  • [GROOVY-6560] - JsonOutput does not escape URL (windows path)
  • [GROOVY-6561] - Implementation for running a script from a URL in GroovyMain is flawed.
  • [GROOVY-6573] - TailRecursive creates compilation error
  • [GROOVY-6576] - list literal constructor misses direct constructor call
  • [GROOVY-6577] - misleading error message for boolean assignment
  • [GROOVY-6579] - Groovy Console not responsive when running the closure.
  • [GROOVY-6580] - InnerClassCompletionVisitor does not overwrite existing propertyMissing/methodMissing impls completely
  • [GROOVY-6582] - Script.invokeMethod bypasses getProperty when looking for closure-valued properties.
  • [GROOVY-6593] - Operators other than dot do not support carriage returns
  • [GROOVY-6596] - New template engine: MarkupTemplateEngine with optional type checking
  • [GROOVY-6597] - GroovyClassLoader.addClasspath should respect URI paths and not use URL.equals
  • [GROOVY-6605] - Object ranges should be inferred as Range for improved fluency
  • [GROOVY-6625] - Sql failed to process query unterminated ' character - legal statement containing quotes
  • [GROOVY-6627] - Problem With CompileStatic And Class.newInstance()
  • [GROOVY-6640] - Compilation warning when using @AutoClone on an object with collection properties
  • [GROOVY-6641] - Compiling a source with a URL pointing to the current working directory produces incorrectly named classes for top-level closures
  • [GROOVY-6646] - vararg method resolution with static compilation selects wrong candidate between (String...) and (Class ...)
  • [GROOVY-6647] - static compilation fails at runtime for calling private constructor
  • [GROOVY-6654] - Can't @Override method with generic argument type in parameterized subclass
  • [GROOVY-6657] - Type checker doesn't find constructor if generic placeholder name doesn't match
  • [GROOVY-6662] - indy caching bug for static method invocations
  • Improvement:
  • [GROOVY-3048] - Groovy Sql API should support stored procedures that have output parameters and return a result set
  • [GROOVY-3328] - Automatic imports for selected text execution
  • [GROOVY-4464] - Loosen white space restrictions
  • [GROOVY-4639] - Add isSet()/hasValue()/similar method to ConfigObject
  • [GROOVY-5159] - Grammar could accept nls! before SPREAD_DOT
  • [GROOVY-5924] - Provide a mechanism to allow the type checker to know what are the expected argument types of a closure
  • [GROOVY-6159] - JsonBuilder list handling improvement
  • [GROOVY-6303] - Add ability to use a different font for the input/output area of Groovy Console
  • [GROOVY-6383] - Allow more conditional blocks other than "environments" in ConfigSlurper
  • [GROOVY-6393] - groovysh: suggest reducing startup time by loading commands from code
  • [GROOVY-6395] - groovysh tab-complete properties of Map/Node instances
  • [GROOVY-6399] - groovysh: Completion of standalone default methods and infix keywords
  • [GROOVY-6448] - Add @DelegatesTo to AstSpecificationCompiler for better IDE autocomplete
  • [GROOVY-6459] - Add comment/uncomment function to groovy-console
  • [GROOVY-6466] - indy DTT#castToType usage
  • [GROOVY-6467] - usage of DTT#castToBoolean in indy
  • [GROOVY-6479] - Closure to SAM interface coercion doesn't handle contravariant types correctly
  • [GROOVY-6499] - groovysh: do not offer GroovyObject Default methods on tab completion
  • [GROOVY-6544] - SourceAwareCustomizer should combine SourceUnit+ClassNode
  • [GROOVY-6546] - Improve parser speeds of Groovy JSON parser while maintaining backward compatability
  • [GROOVY-6554] - Improve serialization speeds of JsonOutput while maintaining backward compatibility
  • [GROOVY-6572] - Add faster invocation path for closures in static compilation mode
  • [GROOVY-6585] - Extend @BaseScript so that script bodies can be implemented in a method named something other than run.
  • [GROOVY-6588] - Enhance GroovyAssert for JUnit 4 Support
  • [GROOVY-6592] - Allow @BaseScript on import or package definition
  • [GROOVY-6615] - Support custom abstract method for configured Script base class like @BaseScript does
  • [GROOVY-6645] - AstSpecificationCompiler and his methods should be public
  • [GROOVY-6652] - Upgrade to ASM 5.0.1
  • New Feature:
  • [GROOVY-1642] - Script needs to be able to retrieve the full path of "its" file
  • [GROOVY-6164] - Add a method to GroovySystem to control which metaclasses are ok to GC
  • [GROOVY-6377] - New Groovy NIO module
  • [GROOVY-6570] - Add @TailRecursive AST transformation
  • [GROOVY-6649] - Support a Sortable annotation and transform
  • [GROOVY-6661] - Support the concept of "traits"
  • Task:
  • [GROOVY-6347] - Upgrade TestNG dependency to version 6.8.7
  • [GROOVY-6366] - Update Jline to 2.11
  • [GROOVY-6367] - Update JANSI to 1.11
  • [GROOVY-6492] - Upgrade to Gradle 1.10
  • [GROOVY-6667] - Dependency upgrades: ant to 1.9.3, xmlunit to 1.5, xstream to 1.4.7

New in Groovy 2.2.2 (Feb 27, 2014)

  • Bug:
  • [GROOVY-6077] - Dynamic dispatch fails to recognize updates in the meta-class
  • [GROOVY-6218] - Type checker doesn't find the inject method
  • [GROOVY-6293] - @Immutable collection members are apparently mutable (sometimes?)
  • [GROOVY-6334] - java.lang.VerifyError when using field from parent as default value for a parameter in a child's contructor
  • [GROOVY-6455] - @CompileStatic and @Delegate with generics causes compilation failure
  • [GROOVY-6457] - File.eachFileMatch is inconsistent with File.eachFile and incurs extra stat() syscalls
  • [GROOVY-6462] - Difference between @Grab behavior during compilation and at runtime
  • [GROOVY-6464] - antlib.xml is missing from jars
  • [GROOVY-6469] - Call site caching bug prevents NumberNumber* call sites from going fast path
  • [GROOVY-6470] - @Grab does not work if the same dependency is used with and without a classifier
  • [GROOVY-6471] - AccessControlException when compiling scripts on the fly with Google App Engine dev server
  • [GROOVY-6473] - @Immutable should provide a no-arg constructor
  • [GROOVY-6475] - @CompileStatic fails on valid generic type argument
  • [GROOVY-6480] - Can't use empty range on array with @CompileStatic
  • [GROOVY-6482] - @CompileStatic does not support empty ranges properly
  • [GROOVY-6488] - Closure to SAM coercion cannot infer generic return type
  • [GROOVY-6489] - Static type checker bug for propery called "names"
  • [GROOVY-6493] - size() and iterator() not correct for an empty IntRange
  • [GROOVY-6495] - /c/Program Files (x86)/Groovy/Groovy-2.2.1/bin/startGroovy: line 96: [: too many arguments
  • [GROOVY-6496] - Compiler reporting bug when calling extension module method in Groovy 2.2
  • [GROOVY-6500] - FactoryBuilderSupport does not expose a getter for disposalClosures
  • [GROOVY-6504] - Type checker select the wrong inject method
  • [GROOVY-6508] - Outer class property dispatcher called by an inner class's propertyMissing looks for attributes/fields rather than properties on the outer class
  • [GROOVY-6509] - A public method annotated with @Memoized is not accessible by subclasses
  • [GROOVY-6512] - AccessControlException at at org.codehaus.groovy.runtime.ProxyGeneratorAdapter$InnerLoader.
  • [GROOVY-6521] - GStringTemplateEngine shares binding
  • [GROOVY-6522] - implicit invocation not working for member closures when using @CompileStatic annotation
  • [GROOVY-6525] - Groovy type extension does not type check for generic parameter
  • [GROOVY-6528] - Confusing Compiler Error For Static Method Calls
  • [GROOVY-6531] - indy has no fastpath for div, previous and next
  • [GROOVY-6533] - parameter.metaClass returns different result when parameter type is "Class parameter" compared to when type is "Class parameter"
  • [GROOVY-6541] - exception in phase 'class generation' using getAt()
  • [GROOVY-6552] - CompileStatic runtime failure (GroovyCastException) with anonymous inner classes where method parameter is referenced in anonymous inner class implementation
  • [GROOVY-6558] - incrementing a Static Compiled Map with default Integer value won't compile
  • [GROOVY-6559] - JsonOutput does not escape single char (char/Character)
  • [GROOVY-6560] - JsonOutput does not escape URL (windows path)
  • [GROOVY-6564] - Type checker fails to infer a generic type without an intermediate variable definition
  • [GROOVY-6568] - VerifyError with implicit call() on closure field with @CompileStatic
  • [GROOVY-6574] - boolean local variable is compiled as Boolean
  • [GROOVY-6575] - Missing type checks for assignment to array
  • [GROOVY-6576] - list literal constructor misses direct constructor call
  • [GROOVY-6580] - InnerClassCompletionVisitor does not overwrite existing propertyMissing/methodMissing impls completely
  • Improvement:
  • [GROOVY-4279] - support int/int with int goal type
  • [GROOVY-4280] - support int/int with any goal type
  • [GROOVY-4281] - support T/V with T,V being one from (int, short, byte, char, long)
  • [GROOVY-6542] - Have @Deletgate include line number in stack traces
  • [GROOVY-6589] - Improve error message in the case the user defines a "run" method in a script

New in Groovy 2.1.9 (Oct 29, 2013)

  • Bug:
  • [GROOVY-6080] - IncompatibleClassChangeError: the number of constructors during runtime and compile time
  • [GROOVY-6385] - groovy.bat: Can't use question mark in script parameters
  • [GROOVY-6390] - Super constructor calls are made using MOP with @CompileStatic
  • [GROOVY-6400] - Constructor call with @CompileStatic causes ArrayIndexOutOfBoundsException during compilation
  • [GROOVY-6401] - @CompileStatic type inference bug with overridden methods: causes GroovyCastException at runtime
  • [GROOVY-6402] - @CompileStatic causes null-safe operator to call method twice

New in Groovy 2.1.8 (Oct 15, 2013)

  • Bug:
  • [GROOVY-6012] - GroovyScriptEngine uses UTF-8 on initial compilation, system file.encoding on recompilation
  • [GROOVY-6156] - Grapes/@Grab does not work with JDK8
  • [GROOVY-6196] - groovy compiler throws ArrayIndexOutOfBoundsException when combining @CompileStatic with @ToString/@EqualsAndHashCode with certain property names
  • [GROOVY-6241] - Type inference fails for methods returning generic map types
  • [GROOVY-6257] - groovydoc information loss for enums
  • [GROOVY-6350] - adding two empty lists fails with NPE
  • [GROOVY-6357] - Inner classes in Groovy should have the same access modifiers as in Java
  • [GROOVY-6365] - Closure taking Object[] in @CompileStatic class gets actual parameters wrapped in additional Object[]
  • [GROOVY-6372] - @Immutable fails to recognize non immutable classes
  • [GROOVY-6379] - Wrong example in the api of class Map(dropWhile)
  • [GROOVY-6384] - Change all calls to Class.forName to direct dispatch so that differences around classloading between Groovy and Java are resolved
  • [GROOVY-6386] - groovyc task throws ZipException when it encounters classpath resources that are not jars
  • Improvement:
  • [GROOVY-3969] - Groovy Console forgets size of input area
  • [GROOVY-6364] - More efficient implementation of thread safety in class ClassLoaderForClassArtifacts
  • [GROOVY-6371] - Documentation for connection parameters in URL.getText() (and related methods) is lacking
  • [GROOVY-6382] - Bintray JCenter added as a first remote resolver in the default Ivy chain

New in Groovy 2.2.0 Beta 2 (Sep 6, 2013)

  • Sub-task:
  • [GROOVY-5875] - Cannot use DELEGATE_FIRST and delegates that are inner classes.
  • Bug:
  • [GROOVY-2974] - IntRange.step overflows near Integer.MAX_VALUE or Integer.MIN_VALUE
  • [GROOVY-5078] - Compiler should not allow 2 methods with same name and no argument to return different types
  • [GROOVY-5261] - A static method call inside a static closure bypasses closure delegate behavior
  • [GROOVY-5610] - Type checking of method calls using generics and default values is not supported
  • [GROOVY-5742] - CompileStatic goes into infinite loop when handling self-referential generics
  • [GROOVY-5839] - Typechecker does not detect shadowed generic parameter
  • [GROOVY-5873] - Type checker does not infer generic type
  • [GROOVY-5882] - @CompileStatic breaks with generic boxed numerics
  • [GROOVY-5883] - @CompileStatic incorrectly inferred closure return type upper bound
  • [GROOVY-5885] - @CompileStatic incorrectly infers generic return type
  • [GROOVY-5891] - Static compiler wrongly infers the return type of Class.cast()
  • [GROOVY-5920] - Type not inferred from Iterator
  • [GROOVY-5974] - @Delegate should support including/excluding which methods are delegated to (and optionally complain if multiple exist) - simple use cases
  • [GROOVY-5981] - @TypedChecked error when using generics
  • [GROOVY-6048] - Generated Java stub for inner interface with generics fails to compile
  • [GROOVY-6056] - @Lazy(soft=true) not quite right
  • [GROOVY-6155] - Can't access private static constant from closure, when using @CompileStatic
  • [GROOVY-6179] - Sublist can be modified by parent list operations
  • [GROOVY-6199] - @CompileStatic class throws runtime errors accessing outer class methods inside nested closures
  • [GROOVY-6250] - Parsing issue with enums using inner generic methods
  • [GROOVY-6251] - Grab of an extension module with a transitive dependency fails
  • [GROOVY-6261] - Inefficient method DefaultGrailsDomainClassInjector.implementsMethod(..)
  • [GROOVY-6262] - Sql.withTransaction setAutoCommit in finally not wrapped in try/catch
  • [GROOVY-6266] - 'class generation' bug when CompileStatic with HashMap and List
  • [GROOVY-6270] - Verifyerror in static compiled code
  • [GROOVY-6272] - Cannot define a no-args closure in Groovy Shell
  • [GROOVY-6274] - replaceNode improvements for XML processing
  • [GROOVY-6275] - DOMCategory: text() doesn't get node value if it is a CDATA section
  • [GROOVY-6288] - Overloaded operator with return type
  • [GROOVY-6289] - Null arg call not ambiguouseven though it should be
  • [GROOVY-6295] - GroovyDoc doesn't escape angle brackets in @code and @literal tags
  • [GROOVY-6300] - JavaStubGenerator clears instance initializers
  • [GROOVY-6306] - Unable to use Grape to grab DLLs
  • [GROOVY-6307] - @TimedInterrupt et al only partially support multiple annotations within a single source file
  • [GROOVY-6311] - Using @CompileStatic on code that uses spread operator on a Set results in compilation error
  • [GROOVY-6317] - @CompileStatic on class using with(Closure) leads to compilation error.
  • [GROOVY-6323] - @CompileStatic error when property of delegated-to object is read
  • [GROOVY-6325] - Type checking complains when calling getter of delegated-to object with property syntax
  • [GROOVY-6332] - Name in delegate block is resolved to (inexisting) field rather than (existing) getter
  • [GROOVY-6333] - Changes required regarding unaryPlus and bitwiseNegate operators for numbers
  • Improvement:
  • [GROOVY-3695] - DGM method signature improvements
  • [GROOVY-6269] - Document limitation of normal map-style constructor use when using @Immutable
  • [GROOVY-6287] - @Immutable could support Class as an immutable type
  • [GROOVY-6305] - newWriter() method for OutputStream
  • New Feature:
  • [GROOVY-4164] - A groovier way of iterate over dates/calendars: upTo() and downTo()
  • Task:
  • [GROOVY-6227] - Delete (not working) Eclipse files from groovy-core git repo
  • [GROOVY-6252] - bump ant dependency version from 1.9.1 to 1.9.2
  • [GROOVY-6280] - Update GPars Dependency to 1.1.0
  • [GROOVY-6292] - Update Gradle version to 1.7-rc-2
  • Test:
  • [GROOVY-5069] - AstBuilderFromSpecificationTest.testElvisOperatorExpression(): DSL and expected AST incorrect
  • Wish:
  • [GROOVY-6226] - Configure Gradle Eclipse plugin for groovy-core

New in Groovy 2.1.7 (Sep 6, 2013)

  • Bug:
  • [GROOVY-5261] - A static method call inside a static closure bypasses closure delegate behavior
  • [GROOVY-5610] - Type checking of method calls using generics and default values is not supported
  • [GROOVY-5742] - CompileStatic goes into infinite loop when handling self-referential generics
  • [GROOVY-5839] - Typechecker does not detect shadowed generic parameter
  • [GROOVY-5873] - Type checker does not infer generic type
  • [GROOVY-5882] - @CompileStatic breaks with generic boxed numerics
  • [GROOVY-5883] - @CompileStatic incorrectly inferred closure return type upper bound
  • [GROOVY-5885] - @CompileStatic incorrectly infers generic return type
  • [GROOVY-5891] - Static compiler wrongly infers the return type of Class.cast()
  • [GROOVY-5920] - Type not inferred from Iterator
  • [GROOVY-5981] - @TypedChecked error when using generics
  • [GROOVY-6048] - Generated Java stub for inner interface with generics fails to compile
  • [GROOVY-6056] - @Lazy(soft=true) not quite right
  • [GROOVY-6155] - Can't access private static constant from closure, when using @CompileStatic
  • [GROOVY-6199] - @CompileStatic class throws runtime errors accessing outer class methods inside nested closures
  • [GROOVY-6249] - "int not-equal int" compiled using slow path in static complation mode
  • [GROOVY-6251] - Grab of an extension module with a transitive dependency fails
  • [GROOVY-6262] - Sql.withTransaction setAutoCommit in finally not wrapped in try/catch
  • [GROOVY-6266] - 'class generation' bug when CompileStatic with HashMap and List
  • [GROOVY-6270] - Verifyerror in static compiled code
  • [GROOVY-6272] - Cannot define a no-args closure in Groovy Shell
  • [GROOVY-6275] - DOMCategory: text() doesn't get node value if it is a CDATA section
  • [GROOVY-6288] - Overloaded operator with return type
  • [GROOVY-6289] - Null arg call not ambiguouseven though it should be
  • [GROOVY-6295] - GroovyDoc doesn't escape angle brackets in @code and @literal tags
  • [GROOVY-6300] - JavaStubGenerator clears instance initializers
  • [GROOVY-6311] - Using @CompileStatic on code that uses spread operator on a Set results in compilation error
  • [GROOVY-6317] - @CompileStatic on class using with(Closure) leads to compilation error.
  • Improvement:
  • [GROOVY-6269] - Document limitation of normal map-style constructor use when using @Immutable

New in Groovy 2.2.0 Beta 1 (Jul 10, 2013)

  • Sub-task:
  • [GROOVY-3105] - API documentation for ConfigSlurper
  • [GROOVY-5968] - Show only parts of bytecode
  • [GROOVY-5969] - Show closures in AST browser
  • [GROOVY-5970] - Non-blocking bytecode view
  • [GROOVY-5977] - "please select a class node" message in AST view
  • [GROOVY-6189] - basic SAM conversion
  • Bug:
  • [GROOVY-4258] - wiki-snapshot.pdf is not searchable. Text can't be copied.
  • [GROOVY-4485] - enum does not support default map constructors
  • [GROOVY-4503] - The delete key doesn't work as expected on groovysh on Linux
  • [GROOVY-4641] - Defining an abstract method in enum
  • [GROOVY-4655] - groovy.transform.EqualsAndHashCode annotation does not handle cycles
  • [GROOVY-4663] - Groovy Console shows both full and sanitized stack trace by default
  • [GROOVY-4701] - MissingMethodException#printStackTrace() throws exception if an arguments toString() method fails
  • [GROOVY-4794] - enum constant initializer parsing
  • [GROOVY-5068] - SecureASTCustomizer receiver needs documentation
  • [GROOVY-5211] - Method dispatch error with @Delegate
  • [GROOVY-5243] - @Canonical @TupleConstructor can't handle Object or Map properties
  • [GROOVY-5349] - ICO file in distribution is broken/missing
  • [GROOVY-5474] - groovy-all-2.0.0-beta-3-indy.jar invoke dynamic jar lacks osgi attributes
  • [GROOVY-5697] - Wiki snapshot (pdf) is outdated
  • [GROOVY-5755] - MissingPropertyException thrown when referencing an externally declared constant from a switch case in an enum instance method
  • [GROOVY-5756] - error during class generation: cannot define closures inside methods of an enum instance
  • [GROOVY-5771] - Project compilation fails when I put an enum in my project
  • [GROOVY-5801] - sql.firstRow() can be incredibly slow
  • [GROOVY-5802] - Exception thrown in groovyConsole
  • [GROOVY-5871] - @Grapes/@Grab not working with GroovyConsole
  • [GROOVY-5898] - Sql.java throws IllegalStateException("Failed to process query. Unterminated ' character?") when comments contain quotes
  • [GROOVY-5931] - groovy.util.slurpersupport.GPathResult is not java.lang.Iterable
  • [GROOVY-5937] - groovydoc does not document type alias for property correctly
  • [GROOVY-5938] - groovydoc does not document array property correctly
  • [GROOVY-5939] - groovydoc does not show link for property type
  • [GROOVY-5940] - groovydoc does not show class hierarchy correctly
  • [GROOVY-5948] - memoizeAtLeast and memoizeBetween don't cleanup garbage-collected SoftReferences
  • [GROOVY-5958] - 'Allowed Interruption' menu item is missing at GroovyConsole on MacOSX
  • [GROOVY-5971] - jarjar issue with CliBuilder/GroovyPosixParser
  • [GROOVY-5980] - Finally executes twice on NPE while casting method result
  • [GROOVY-6004] - Groovydoc should process annotations more intelligently
  • [GROOVY-6007] - @GrabResolver doesn't affect Ivy
  • [GROOVY-6017] - NPE in Groovydoc
  • [GROOVY-6019] - Cross compilation of Groovy annotation on Java class does not work
  • [GROOVY-6025] - Using short, byte, char annotation definition attribute constants should be supported
  • [GROOVY-6032] - @GrabResolver information is not retained at runtime in compiled class
  • [GROOVY-6054] - context variable breaks output transformation
  • [GROOVY-6057] - Add a Collection#combinations(Closure) method
  • [GROOVY-6058] - JsonSlurper should support URL and File variants for parse
  • [GROOVY-6065] - Overriding enum methods in constant specific body does not work if non-default constructor is used
  • [GROOVY-6068] - Thread safety issue in AntBuilder leads to major memory leak
  • [GROOVY-6082] - GroovyResultSet not updateable for Prepared Statements
  • [GROOVY-6085] - Annotation for inner interface in Java stub should not use dollar notation
  • [GROOVY-6093] - @XmlEnumValue annotation is lost from enum constant during compilation
  • [GROOVY-6106] - A list of syntax highlighting errors
  • [GROOVY-6120] - Verify error in class annotated with @Category if instance field is used
  • [GROOVY-6121] - Object[].groupBy is not defined
  • [GROOVY-6122] - FilteredNodeChildren doesn't provide childNodes() iterator
  • [GROOVY-6125] - Bugs in GPathResult.parent() and '..' notation
  • [GROOVY-6143] - groovysh & groovysh completion vulnerable to Classes with custom getProperty()
  • [GROOVY-6152] - LazyList does not allow range access
  • [GROOVY-6158] - Missing directory entries in groovy-all JAR
  • [GROOVY-6171] - Memory tweaks for groovy compiler
  • [GROOVY-6192] - @EqualsAndHashCode override not working when used with @Immutable if @Immutable appears first
  • [GROOVY-6201] - groovysh hangs on Edit command when using terminal editor (vim, nano, etc.) on posix terminals
  • [GROOVY-6205] - META-INF/services/org.codehaus.groovy.runtime.ExtensionModule missing from groovy-all.jar
  • [GROOVY-6211] - Fix failing Process tests on windows
  • [GROOVY-6217] - The Edit command should replace the shell buffer, not append.
  • [GROOVY-6232] - Type checker fails with internal error for diamond
  • [GROOVY-6233] - static type checker fails to check constructor arguments
  • [GROOVY-6234] - Groovy can not be build with Gradle 1.6
  • [GROOVY-6237] - wrong resolution for hidden generics
  • Improvement:
  • [GROOVY-2183] - Allow the 'edit' command to work on windows
  • [GROOVY-3332] - The groovy.time.*Duration classes make use of java.sql.Date
  • [GROOVY-4778] - The groovy wiki pdf dosn't support searching
  • [GROOVY-4877] - Groovy Console should set the context class loader to the class loader that loaded the script.
  • [GROOVY-4943] - Allow enableAutoDownload to be set when using @Grab
  • [GROOVY-5445] - Make @Delegate delegate to inherited property accessors
  • [GROOVY-5709] - improve Grapes error reporting for ZipException
  • [GROOVY-5749] - Groovy Console -- Option to Auto-Save on Run
  • [GROOVY-5973] - DGM.collectMany() overload that accepts Iterable
  • [GROOVY-6039] - Allow type checking extensions to handle ambiguous references to methods
  • [GROOVY-6043] - Precompiled typechecking extension scripts
  • [GROOVY-6044] - Add handler for "Cannot return value of type Foo on method returning type Bar" error
  • [GROOVY-6053] - Try iterating or transforming Object into Collection in DefaultGroovyMethods like count(), sort() and other Collection methods.
  • [GROOVY-6062] - Hard check for JTable in ColumnModelFactory.onNodeCompleted prevented columnModel() to be used in a noparent()-block
  • [GROOVY-6073] - Fixes and improvements for Groovysh
  • [GROOVY-6074] - Import completion for all jar files on CLASSPATH
  • [GROOVY-6076] - New DelegatingScript Class which provides a delegate for property and method calls
  • [GROOVY-6112] - Support AST transforms on the field generated by @Field in scripts
  • [GROOVY-6134] - Make @DelegatesTo support mapping to generic type argument
  • [GROOVY-6139] - Extend groovysh completion evaluating "mostly" safe expressions before cursor
  • [GROOVY-6145] - Groovysh could allow filename completion inside strings
  • [GROOVY-6150] - Add 'doc' command to groovysh
  • [GROOVY-6160] - @DelegatesTo should be @Documented
  • New Feature:
  • [GROOVY-4379] - Providing Groovy binary release (groovy-binary.zip) in Maven repository
  • [GROOVY-4993] - @Memoized AST Transformation for Methods
  • [GROOVY-6087] - grape command could provide a resolver option for "install"
  • [GROOVY-6178] - Add class name completion to 'doc' command
  • Task:
  • [GROOVY-3055] - Improve API class documentation
  • [GROOVY-5342] - Update hsqldb dependency
  • [GROOVY-5344] - Update jline dependency
  • [GROOVY-5964] - Upgrade gradle to 1.5
  • [GROOVY-5965] - Upgrade ivy to 2.3.0
  • [GROOVY-6060] - Upgrade Ant to 1.9.0
  • [GROOVY-6081] - Improve unit tests execution time
  • [GROOVY-6170] - Upgrade ant 1.9.0 -> 1.9.1
  • [GROOVY-6172] - bump testng dependency 6.8 -> 6.8.5
  • [GROOVY-6173] - bump xstream dependency 1.4.2 -> 1.4.4
  • [GROOVY-6216] - Upgrade to ASM 4.1
  • Wish:
  • [GROOVY-6208] - Move groovy.icns to lib
  • [GROOVY-6225] - Change template of "index-all.html" so that it can be parsed by Dash's javadocset command

New in Groovy 2.1.6 (Jul 10, 2013)

  • Bug:
  • [GROOVY-4632] - in eachRow's closures rows do not always respond to getClass()
  • [GROOVY-5349] - ICO file in distribution is broken/missing
  • [GROOVY-6187] - GroovyResultSet Proxy not working with Object methods
  • [GROOVY-6192] - @EqualsAndHashCode override not working when used with @Immutable if @Immutable appears first
  • [GROOVY-6195] - Use of overloaded methods with empty/varags parameters fails if type checking is active
  • [GROOVY-6200] - Ant groovyc throws a NoClassDefFoundError compiling a groovy class with @DelegatesTo and @CompileStatic
  • [GROOVY-6205] - META-INF/services/org.codehaus.groovy.runtime.ExtensionModule missing from groovy-all.jar
  • [GROOVY-6206] - @CompileStatic compilation fails sometimes in gradle build with error message Reference to method is ambiguous. Cannot choose between
  • [GROOVY-6207] - Incorrect flow typing reset after if branch

New in Groovy 2.1.5 (Jun 21, 2013)

  • Bug:
  • [GROOVY-5349] - ICO file in distribution is broken/missing
  • [GROOVY-6192] - @EqualsAndHashCode override not working when used with @Immutable if @Immutable appears first
  • [GROOVY-6195] - Use of overloaded methods with empty/varags parameters fails if type checking is active
  • [GROOVY-6200] - Ant groovyc throws a NoClassDefFoundError compiling a groovy class with @DelegatesTo and @CompileStatic
  • [GROOVY-6205] - META-INF/services/org.codehaus.groovy.runtime.ExtensionModule missing from groovy-all.jar
  • [GROOVY-6206] - @CompileStatic compilation fails sometimes in gradle build with error message Reference to method is ambiguous. Cannot choose between
  • [GROOVY-6207] - Incorrect flow typing reset after if branch

New in Groovy 2.1.4 (May 31, 2013)

  • Bug:
  • [GROOVY-5449] - NullPointerException in compiler when using @Immutable
  • [GROOVY-5921] - BUG! exception in phase 'class generation' while poping argument from operand stack tracker
  • [GROOVY-6029] - GString not properly coerced to long
  • [GROOVY-6095] - Static checker fails on correct code
  • [GROOVY-6098] - @CompileStatic fails to compile when accessing boolean property using "isPropertyName()" getter method
  • [GROOVY-6099] - @CompileStatic gives ClassCastException at runtime when calling methods on Object in some scenarios
  • [GROOVY-6100] - @CompileStatic fails to compile when using constants declared on interfaces implemented by super class
  • [GROOVY-6101] - verify error with compile static
  • [GROOVY-6104] - Unable to access static interface fields from classes annotated with @CompileStatic
  • [GROOVY-6108] - Null-safe operator on lhs of comparison may lead to NPE with @CompileStatic
  • [GROOVY-6109] - Access to java.lang.Object#delegate is forbidden with Gaelyk
  • [GROOVY-6113] - Class with @CompileStatic throws VerifyError when passing int constant to method taking varargs object array
  • [GROOVY-6114] - Class with @CompileStatic, @Immutable, and a List property causes a compiler exception to be thrown
  • [GROOVY-6119] - Type checker doesn't recognize explicit map constructor
  • [GROOVY-6122] - FilteredNodeChildren doesn't provide childNodes() iterator
  • [GROOVY-6124] - Cannot use array slice with @CompileStatic
  • [GROOVY-6127] - VerifyError "Incompatible argument to function" when returning value from function after instanceof check in a function that should return Object (bug in inference base return type selection)
  • [GROOVY-6129] - @CompileStatic def map = new HashMap() crashes compiler
  • [GROOVY-6131] - Surprising Behavior With @CompileStatic And Collection.putAt
  • [GROOVY-6133] - bad example in comment of SourceAwareCustomizerFactory(source(basenameVaidator:{}))
  • [GROOVY-6137] - CompileStatic: in operator (isCase) isn't null safe in CS mode
  • [GROOVY-6147] - CompileStatic: dispatch bug with overloaded method when last argument is an array and there is an separate method without the last array argument
  • [GROOVY-6153] - SecureASTCustomizer using whitelist does not work deterministically
  • [GROOVY-6158] - Missing directory entries in groovy-all JAR
  • [GROOVY-6162] - 'this' in static context not treated as class by @CompileStatic
  • [GROOVY-6165] - Incorrect property lookup if a method starts with "get"
  • [GROOVY-6171] - Memory tweaks for groovy compiler
  • [GROOVY-6180] - Type checker skip mode not always applied to anonymous inner classes
  • [GROOVY-6183] - Errors with static attribute expression
  • [GROOVY-6187] - GroovyResultSet Proxy not working with Object methods
  • Improvement:
  • [GROOVY-6112] - Support AST transforms on the field generated by @Field in scripts
  • [GROOVY-6160] - @DelegatesTo should be @Documented
  • Task:
  • [GROOVY-6081] - Improve unit tests execution time

New in Groovy 2.1.3 (Apr 13, 2013)

  • Bug:
  • [GROOVY-4641] - Defining an abstract method in enum
  • [GROOVY-4655] - groovy.transform.EqualsAndHashCode annotation does not handle cycles
  • [GROOVY-5211] - Method dispatch error with @Delegate
  • [GROOVY-5243] - @Canonical @TupleConstructor can't handle Object or Map properties
  • [GROOVY-5755] - MissingPropertyException thrown when referencing an externally declared constant from a switch case in an enum instance method
  • [GROOVY-5756] - error during class generation: cannot define closures inside methods of an enum instance
  • [GROOVY-5771] - Project compilation fails when I put an enum in my project
  • [GROOVY-5859] - Invalid generic cast generated in super constructor call in a Java stub
  • [GROOVY-5948] - memoizeAtLeast and memoizeBetween don't cleanup garbage-collected SoftReferences
  • [GROOVY-6021] - @DelegatesTo: static type checker misses an error
  • [GROOVY-6054] - context variable breaks output transformation
  • [GROOVY-6055] - @DelegatesTo added by AST assumes static context
  • [GROOVY-6061] - in CompileStatic mode, "a[i] = a[j]" won't work
  • [GROOVY-6064] - @CompileDynamic misses the processor
  • [GROOVY-6065] - Overriding enum methods in constant specific body does not work if non-default constructor is used
  • [GROOVY-6068] - Thread safety issue in AntBuilder leads to major memory leak
  • [GROOVY-6072] - `String | []` represented as ClassExpression in AST (causing problems in Spock data tables)
  • [GROOVY-6075] - The compiler doesn't honor the "target bytecode" flag
  • [GROOVY-6078] - Chained null-safe navigation is broken in CompileStatic mode
  • [GROOVY-6082] - GroovyResultSet not updateable for Prepared Statements
  • [GROOVY-6086] - @CompileStatic problem with methods returning array of Objects - Error msg: "Cannot return value of type [LSomeClass; on method returning type SomeClass[]"
  • [GROOVY-6091] - Explicit use of "delegate" doesn't make use of @DelegatesTo
  • [GROOVY-6093] - @XmlEnumValue annotation is lost from enum constant during compilation
  • [GROOVY-6094] - ImportNode doesn't contain line information
  • Improvement:
  • [GROOVY-5445] - Make @Delegate delegate to inherited property accessors
  • New Feature:
  • [GROOVY-6087] - grape command could provide a resolver option for "install"

New in Groovy 2.1.2 (Mar 19, 2013)

  • Bug:
  • [GROOVY-6001] - Method overloading behavior is non-deterministic and differs from Java behavior
  • [GROOVY-6004] - Groovydoc should process annotations more intelligently
  • [GROOVY-6007] - @GrabResolver doesn't affect Ivy
  • [GROOVY-6008] - Extension methods not recognized by Gradle
  • [GROOVY-6011] - GroovyTypeCheckingExtensionSupport.safeCall() is not all that safe
  • [GROOVY-6015] - Use of Class.forName breaks groovy-Eclipse
  • [GROOVY-6017] - NPE in Groovydoc
  • [GROOVY-6019] - Cross compilation of Groovy annotation on Java class does not work
  • [GROOVY-6025] - Using short, byte, char annotation definition attribute constants should be supported
  • [GROOVY-6030] - "Reference to method is ambiguous" reported for unambiguous usage of List implementors
  • [GROOVY-6032] - @GrabResolver information is not retained at runtime in compiled class
  • [GROOVY-6034] - Compile static: report null assignments to variables with primitive types
  • [GROOVY-6035] - Regression, Compile static does not deduce Closure Type
  • [GROOVY-6041] - Cannot implement method from java interface with varargs and generics
  • [GROOVY-6042] - Change to ConfigSlurper broke non-string keys
  • [GROOVY-6045] - making super-call safe causes a verify error
  • [GROOVY-6047] - typechecker NPEs on method from findMethodsWithGenerated, unknown receiver
  • [GROOVY-6050] - [Static type checking] - Inconvertible types: cannot cast java.io.Writer to SomeInterface
  • [GROOVY-6051] - NPE in typechecker generics inference

New in Groovy 2.1.1 (Feb 15, 2013)

  • Sub-task:
  • [GROOVY-3105] - API documentation for ConfigSlurper
  • [GROOVY-5968] - Show only parts of bytecode
  • [GROOVY-5970] - Non-blocking bytecode view
  • [GROOVY-5977] - "please select a class node" message in AST view
  • Bug:
  • [GROOVY-4458] - NPE in org.codehaus.groovy.runtime.dgmimpl.NumberNumberPlus$DoubleInteger
  • [GROOVY-5425] - ObjectRange doesn't have BigInteger optimisation for size()
  • [GROOVY-5894] - Left shift on collection fails for list with CompileStatic
  • [GROOVY-5937] - groovydoc does not document type alias for property correctly
  • [GROOVY-5938] - groovydoc does not document array property correctly
  • [GROOVY-5939] - groovydoc does not show link for property type
  • [GROOVY-5940] - groovydoc does not show class hierarchy correctly
  • [GROOVY-5947] - Build test failures on jdk8b78
  • [GROOVY-5953] - Correct slow invocation path with EMC
  • [GROOVY-5958] - 'Allowed Interruption' menu item is missing at GroovyConsole on MacOSX
  • [GROOVY-5959] - switch case misbehave with @Typechecked
  • [GROOVY-5962] - @TypeChecked should have a default value for extensions
  • [GROOVY-5963] - Exception in phase 'class generation'
  • [GROOVY-5971] - jarjar issue with CliBuilder/GroovyPosixParser
  • [GROOVY-5978] - configscript not available from Groovyc class
  • [GROOVY-5979] - Groovy Ant task doesn't support indy/configscript/scriptbaseclass
  • [GROOVY-5980] - Finally executes twice on NPE while casting method result
  • [GROOVY-5984] - Weird behaviour of switch-case-break statement with @CompileStatic
  • [GROOVY-5988] - Map subscript operator not working with CompileStatic
  • [GROOVY-5991] - Type Checking Extensions cannot handle operator methods
  • [GROOVY-5994] - Type checking extensions should have access to the compile classpath
  • [GROOVY-5995] - Type checking extensions are not initialized when used with @CompileStatic
  • [GROOVY-5997] - CompileStatic compilation error using a regex matcher
  • [GROOVY-6000] - Using getter/setter without property and @DelegatesTo doesn't work
  • Improvement:
  • [GROOVY-5999] - Make @Delegate work with @DelegatesTo
  • [GROOVY-6002] - ModuleNode should setScriptBaseClassFromConfig from context or unit
  • Task:
  • [GROOVY-3055] - Improve API class documentation

New in Groovy 2.1.0 (Jan 26, 2013)

  • Bug fixes:
  • java.lang.ArrayIndexOutOfBoundsException: size==0
  • error: incompatible types on Java stubs returning generics
  • ConfigSlurper broken on AppEngine
  • groovysh 2.0.0-beta-3 ERROR java.lang.ClassCastException: required class java.lang.Class but encountered class org.fusesource.jansi.AnsiRenderer
  • Multiple problems with @CompileStatic and abstract inheritance
  • TokenException returns wrong endColumn value
  • groovy-all-2.0.0-sources.jar is missing lots of source files
  • Constants defined in an interface not visible to implementing subclass in a static context
  • Java stub generator generates wrong cast for return value of generic method
  • Problem with cached calls with GroovyServlet
  • Running script with '--enoding' param and some script parameters
  • ArrayIndexOutOfBounds when calling super method in SKIP @CompileStatic section
  • TypeChecker: Fails with NPE when use generics in inheritance tree?
  • CompileStatic: VerifierError calling method within findAll closure
  • Parsing problem of number literal 0x8000000000000000L
  • interface
  • JsonOutput Date formatting is not threadsafe
  • @Compile static Sql.newInstance
  • @CompileStatic casting problem
  • Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Cannot run program "find": java.io.IOException: error=24, Too many open files
  • Cannot use @CompileStatic with Thread.start method
  • Grape's Grab ignores 'ext' when classifier is not set
  • Incorrectly finding "where" in query string
  • TimeoutException immediately thrown when using both TimedInterrupt and with {} closure on a Map
  • Input stream not closed
  • STC: calling a closure stored in a property yields an NPE
  • Groovyc ant task fails with nested javac when using generics
  • Stub compiler expands generic-inner-class variable declaration incorrectly
  • Delegating to an abstract class hierarchy doesn't implement interfaces at a higher level
  • performance problem in DefaultGroovyMethods.removeAll()
  • Delegation to an interface with deprecated methods shows a compile error
  • @TypeChecked and "Charset ISO_8859_1_CHARSET = Charset.forName("ISO-8859-1")": Cannot assign value of type java.lang.Class to variable of type java.nio.charset.Charset
  • Changes in groovy.json.JsonOutput require extensive permissions that aren't compatible with some web frameworks.
  • XmlNodePrinter uses quote variables for more than just attributes
  • Node is missing documentation
  • InvokerInvocationException not being unwrapped
  • Adding milliseconds with TimeCategory gives incorrect toString
  • Adding milliseconds with TimeCategory gives incorrect toString
  • Documentation error for ExpandoMetaClass
  • XmlSlurper Unable to Access Attributes with Same Name but in Different Namespaces
  • No way to tell @Immutable that you're using an Immutable List structure already
  • groovy, groovysh, groovyconsole, etc Cannot use spaces in supplied classpath -cp
  • jarsigner fails because two duplicate objects exists in groovy-2.0.1.jar
  • groovydoc not working (ClassNotFoundException)
  • Static compilation runtime error when using mapped constructor
  • The if(instanceof) block is not inferring type in a Closure
  • @Log won't compile with @CompileStatic if "log" is used in a Closure
  • xml:lang attribute appears to break StreamingMarkupBuilder >= 2.0.6
  • Java code behaves wrong on 2.0.5 but not on 1.8.8
  • null initial value can't be inferred with generic field of a class
  • The spread-call syntax is statically compiled for collections, but not for arrays
  • combining the default namespace and normal namespaces with StreamingMarkupBuilder causes issues
  • groovy.xml.QName uses string interning of volatile data and the trim antipattern
  • ConfigObject is unexpectedly no longer Cloneable
  • Groovy:[Static type checking] - Inconvertible types: cannot cast javax.script.ScriptEngine to javax.script.Invocable
  • Compiler wrongly tries only static resolution when calling spread operator on a collection of strings
  • Compiler hangs on this code
  • @CompileStatic resolves the 'in' operator wrongly
  • @CompileStatic(SKIP) does not work for constructors
  • Groovyc: BUG! exception in phase 'class generation' in source unit
  • SwingBuilder never shuts down the default executor service
  • @CompileStatic VerifyError
  • JsonBuilder toPrettyString gen "\"\"" for emtyString it should be ""
  • Obscure method getTimeZone(java.util.Date) in org.codehaus.groovy.runtime.TimeCategory
  • getAt(EmptyRange) not called when passing an EmptyRange to getAt(Collection)
  • Object.with seems to lose typing when generics are used
  • -baseScript option for groovy command
  • unable to add assertions via compile time transform
  • Casting map as Random results in java.lang.VerifyError
  • StackOverflow with CompileStatic
  • covariant method addition causing call to abstract method
  • -configscript option for groovy command.
  • java.lang.OutOfMemoryError through Iterator.collectEntries and others (part 1: handle collectEntries)
  • CompileStatic: long loses type when bitwise OR applied to it
  • @TypeChecked$TypeCheckingInfo is added to constructors
  • Problem dispatching array as argument to a closure
  • SyntaxException.getEndColumn() returns "getStartColumn() + 1"
  • DOMCategory should provide name() convenience method for Node's not just Element's
  • Stub generator should not use raw types when casting default return values
  • wasted work in "ClassCompletionVerifier.checkMethodForWeakerAccessPrivileges"
  • wasted work in "DefaultGrailsDomainClassInjector.implementsMethod"
  • wasted work in the "ClassNode" constructor
  • Copy/paste error in EmptyBorderFactory
  • wasted work in "ClassNode.addMixin"
  • Static type checking - Color.red recognized as int
  • Pasting into groovy console using shift+insert turns overwrite mode on.
  • wasted work in "SimpleGroovyClassDocAssembler.extractName"
  • ImportCustomizer for CompilerCustomizationBuilder is not added to configscript CompilerConfiguration
  • Closure default params can cause BUG! exception in phase 'class generation'
  • groovy.ui.Console cannot be extended
  • XmlTemplateEngine does not escape expression values (part 1)
  • @AutoClone excludes param works correctly only for COPY_CONSTRUCTOR AutoCloneStyle
  • startGroovy breaks one-liners containing double quotes
  • "string".count('') fails
  • Groovy fails to launch scripts from Cygwin
  • Non found static type checking extensions throw unexplicit NPE
  • JsonBuilder.toString() fails with StackOverflowError when using Expando
  • groovy does not detect correct Java version on Mac
  • Improvements:
  • Add DGM leftShift and other appropriate methods for java.lang.Appendable
  • upgrade to gradle 1.1
  • remove $getCallSiteArray for indy compilation
  • array coercion missing for subarray assignment
  • Provide a builder for compilation customizers
  • Add an includePackage attribute for the ToString AST transform
  • AST customizer working as a guard for another
  • Add base script option to groovyc and its ant task
  • Support for DSL type checking
  • ConfigSlurper - multiple environment blocks broken
  • Process should have a method called closeStreams()
  • Provide File method to get directory size
  • groovy.lang.Closure javadoc should mention method resolution in resolve strategy constants
  • @EqualsAndHashCode should allow caching of hashCode values
  • Provide a way to assemble an annoation consisting of several other
  • @CompileDynamic annotation
  • @ToString should allow caching of toString values
  • Add an "encoding" option for Groovydoc tool and Ant task
  • Make @Delegate carry over method annotations
  • Option to default to Static Compilation
  • Allow customization of @Singleton's instance getter name
  • collectMany should have a map variant
  • @Immutable annotation should allow Cloneable fields
  • Remove buildSrc's target and .gradle directories from the source distribution
  • Upgrade junit to 4.11
  • support jar: in addition to file: and http: for urls when running scripts on the command line
  • Pretty toString() for AnnotationConstantExpression
  • DGM should have a getAt method for Iterable
  • Upgrade testng to 6.8
  • The range interface should return the generic type T from getTo() and getFrom()
  • upgrade qdox to 1.12.1
  • getBytes for GString
  • NP when AST implementation class lacks @GroovyASTTransformation
  • Create/Distribute an archive containing source, binary and documentation
  • Provide a way to lookup class nodes from static type checking extension scripts
  • Add createTempDir() to File
  • New features:
  • @DelegatesTo annotation for IDEs/TypeChecker
  • Compiler flag for type checking most classes, and TypeUnchecked annotation override
  • Provide a flag for the groovyc ant task to control whether it searches the classpath for source files
  • Support an Observable version of Set
  • Add clone or copy constructor to XML Node
  • add DGM variant for Map#subMap supporting an array of keys
  • Element.serialize
  • Sub-task:
  • GROOVY-3055 public api documentation for entire groovy.util.slurpersupport package - especially GPathResult
  • upgrade to gradle 1.2
  • Upgrade the GPars dependency to 1.0

New in Groovy 2.1.0 RC 3 (Jan 22, 2013)

  • Bug:
  • [GROOVY-5918] - JsonBuilder.toString() fails with StackOverflowError when using Expando
  • [GROOVY-5922] - CompileStatic: long loses type when bitwise OR applied to it
  • [GROOVY-5933] - @TypeChecked$TypeCheckingInfo is added to constructors
  • [GROOVY-5934] - java.lang.OutOfMemoryError through Iterator.collectEntries and others (part 1: handle collectEntries)

New in Groovy 2.1.0 RC 2 (Jan 19, 2013)

  • Bug:
  • [GROOVY-3326] - Obscure method getTimeZone(java.util.Date) in org.codehaus.groovy.runtime.TimeCategory
  • [GROOVY-3419] - Groovy fails to launch scripts from Cygwin
  • [GROOVY-5366] - unable to add assertions via compile time transform
  • [GROOVY-5733] - JsonBuilder toPrettyString gen "\"\"" for emtyString it should be ""
  • [GROOVY-5865] - getAt(EmptyRange) not called when passing an EmptyRange to getAt(Collection)
  • [GROOVY-5878] - startGroovy breaks one-liners containing double quotes
  • [GROOVY-5901] - @AutoClone excludes param works correctly only for COPY_CONSTRUCTOR AutoCloneStyle
  • [GROOVY-5906] - StackOverflow with CompileStatic
  • [GROOVY-5907] - Object.with seems to lose typing when generics are used
  • [GROOVY-5910] - Non found static type checking extensions throw unexplicit NPE
  • [GROOVY-5915] - TokenException returns wrong endColumn value
  • [GROOVY-5917] - -configscript option for groovy command.
  • [GROOVY-5919] - Multiple problems with @CompileStatic and abstract inheritance
  • [GROOVY-5925] - Casting map as Random results in java.lang.VerifyError
  • [GROOVY-5926] - ArrayIndexOutOfBounds when calling super method in SKIP @CompileStatic section
  • [GROOVY-5927] - JsonBuilder.toPrettyString() incorrect for zero-length String
  • [GROOVY-5930] - -baseScript option for groovy command
  • [GROOVY-5932] - covariant method addition causing call to abstract method
  • Improvement:
  • [GROOVY-4714] - @EqualsAndHashCode should allow caching of hashCode values
  • [GROOVY-5446] - Make @Delegate carry over method annotations
  • [GROOVY-5816] - Add an "encoding" option for Groovydoc tool and Ant task
  • [GROOVY-5905] - NP when AST implementation class lacks @GroovyASTTransformation
  • [GROOVY-5911] - @CompileDynamic annotation
  • [GROOVY-5916] - Provide a way to lookup class nodes from static type checking extension scripts
  • [GROOVY-5928] - @ToString should allow caching of toString values
  • Wish:
  • [GROOVY-5904] - Create/Distribute an archive containing source, binary and documentation

New in Groovy 2.1.0 RC 1 (Jan 10, 2013)

  • Sub-task:
  • [GROOVY-3394] - public api documentation for entire groovy.util.slurpersupport package - especially GPathResult
  • Bug:
  • [GROOVY-3258] - groovy.xml.QName uses string interning of volatile data and the trim antipattern
  • [GROOVY-4670] - groovy.ui.Console cannot be extended
  • [GROOVY-5473] - groovysh 2.0.0-beta-3 ERROR java.lang.ClassCastException: required class java.lang.Class but encountered class org.fusesource.jansi.AnsiRenderer
  • [GROOVY-5632] - Closure default params can cause BUG! exception in phase 'class generation'
  • [GROOVY-5812] - Java code behaves wrong on 2.0.5 but not on 1.8.8
  • [GROOVY-5863] - ImportCustomizer for CompilerCustomizationBuilder is not added to configscript CompilerConfiguration
  • [GROOVY-5867] - xml:lang attribute appears to break StreamingMarkupBuilder >= 2.0.6
  • [GROOVY-5868] - ConfigObject is unexpectedly no longer Cloneable
  • [GROOVY-5870] - Groovy:[Static type checking] - Inconvertible types: cannot cast javax.script.ScriptEngine to javax.script.Invocable
  • [GROOVY-5872] - null initial value can't be inferred with generic field of a class
  • [GROOVY-5874] - Groovyc: BUG! exception in phase 'class generation' in source unit
  • [GROOVY-5879] - combining the default namespace and normal namespaces with StreamingMarkupBuilder causes issues
  • [GROOVY-5884] - @CompileStatic(SKIP) does not work for constructors
  • [GROOVY-5887] - The spread-call syntax is statically compiled for collections, but not for arrays
  • [GROOVY-5888] - Compiler wrongly tries only static resolution when calling spread operator on a collection of strings
  • [GROOVY-5889] - Compiler hangs on this code
  • [GROOVY-5890] - @CompileStatic resolves the 'in' operator wrongly
  • [GROOVY-5892] - @CompileStatic VerifyError
  • Improvement:
  • [GROOVY-4572] - Provide File method to get directory size
  • [GROOVY-5242] - groovy.lang.Closure javadoc should mention method resolution in resolve strategy constants
  • [GROOVY-5370] - ConfigSlurper - multiple environment blocks broken
  • [GROOVY-5452] - Process should have a method called closeStreams()
  • [GROOVY-5761] - getBytes for GString
  • New Feature:
  • [GROOVY-3689] - Element.serialize
  • [GROOVY-5877] - Provide a flag for the groovyc ant task to control whether it searches the classpath for source files
  • [GROOVY-5886] - Support an Observable version of Set

New in Groovy 2.0.6 (Dec 21, 2012)

  • Bug:
  • [GROOVY-3153] - groovy, groovysh, groovyconsole, etc Cannot use spaces in supplied classpath -cp
  • [GROOVY-4373] - Groovlet generated error "The requested resource () is not available."
  • [GROOVY-4627] - Binding support for group attribute
  • [GROOVY-4637] - XmlSlurper Unable to Access Attributes with Same Name but in Different Namespaces
  • [GROOVY-4648] - Pasting into groovy console using shift+insert turns overwrite mode on.
  • [GROOVY-4820] - Problems using Groovlet / GSP from embedded Jetty
  • [GROOVY-4950] - ConfigSlurper broken on AppEngine
  • [GROOVY-5187] - Groovy Script Engine creates new classes for each script and doesn't get garbage collected
  • [GROOVY-5189] - Character XOR behaves differently depending on JVM
  • [GROOVY-5191] - Running script with '--enoding' param and some script parameters
  • [GROOVY-5289] - Using GroovyServlet deployed to Tomcat with a multi-level context causes 404 errors
  • [GROOVY-5433] - Node is missing documentation
  • [GROOVY-5468] - Documentation error for ExpandoMetaClass
  • [GROOVY-5695] - jarsigner fails because two duplicate objects exists in groovy-2.0.1.jar
  • [GROOVY-5712] - @TypeChecked and "Charset ISO_8859_1_CHARSET = Charset.forName("ISO-8859-1")": Cannot assign value of type java.lang.Class to variable of type java.nio.charset.Charset
  • [GROOVY-5720] - Static Typechecking of Comparison Operations (e. g. '

New in Groovy 2.0.5 (Oct 4, 2012)

  • Bug:
  • [GROOVY-4975] - GroovyScripeEngine fails to properly reload when dependent class is updated
  • [GROOVY-5723] - Problem with cached calls with GroovyServlet
  • [GROOVY-5729] - Delegation to an interface with deprecated methods shows a compile error
  • [GROOVY-5730] - array given spreaded to doCall method if EMC is enabled
  • [GROOVY-5732] - Delegating to an abstract class hierarchy doesn't implement interfaces at a higher level
  • [GROOVY-5739] - performance problem in DefaultGroovyMethods.removeAll()
  • Improvement:
  • [GROOVY-5716] - @Immutable annotation should allow Cloneable fields

New in Groovy 2.0.4 (Sep 22, 2012)

  • Bugs fixed:
  • [GROOVY-5187] - Groovy Script Engine creates new classes for each script and doesn't get garbage collected
  • [GROOVY-5418] - Compilation error with covariant return types (incompatible types)
  • [GROOVY-5439] - error: incompatible types on Java stubs returning generics
  • [GROOVY-5630] - Java stub generator generates wrong cast for return value of generic method
  • [GROOVY-5665] - Groovyc ant task fails with nested javac when using generics
  • [GROOVY-5675] - Stub compiler expands generic-inner-class variable declaration incorrectly
  • [GROOVY-5693] - Unexpected behavior of CompileStatic when assigning a Closure to a new block code
  • [GROOVY-5698] - STC: problem w/ map based constructors
  • [GROOVY-5699] - STC: Property inference issue with IntRange properties
  • [GROOVY-5700] - STC: different behavior w/ map subscript and property access when using elvis
  • [GROOVY-5702] - STC: checker confused by overridden method from sub interface
  • [GROOVY-5703] - CompileStatic - Calling vargarg parameter String is converted to array of strings
  • [GROOVY-5704] - CompileStatic conues field access with property access
  • [GROOVY-5705] - STC: calling a closure stored in a property yields an NPE
  • [GROOVY-5706] - JSR 223 invokeFunction broken in 2.0.2 - regression
  • [GROOVY-5707] - If superclass defines a readonly property, subclass may not use a private field of the same name
  • [GROOVY-5710] - Stub generator should not use raw types when casting default return values
  • [GROOVY-5713] - timing problem with GroovyScriptEngine recompilation

New in Groovy 2.0.2 (Sep 10, 2012)

  • Bug:
  • [GROOVY-4975] - GroovyScripeEngine fails to properly reload when dependent class is updated
  • [GROOVY-5125] - GroovyScriptEngine load from jarURL fail
  • [GROOVY-5187] - Groovy Script Engine creates new classes for each script and doesn't get garbage collected
  • [GROOVY-5321] - GroovyScriptEngine getResourceConnection treats resourceName argument as URI path spec
  • [GROOVY-5322] - MinimumRecompilationInterval is not used as an interval in GroovyScriptEngine
  • [GROOVY-5590] - Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Cannot run program "find": java.io.IOException: error=24, Too many open files
  • [GROOVY-5627] - Problems with categories when using invoke dynamic
  • [GROOVY-5633] - indy transformation for receiver missing
  • [GROOVY-5635] - SyntaxException.getEndColumn() returns "getStartColumn() + 1"
  • [GROOVY-5636] - java.lang.ArrayIndexOutOfBoundsException: size==0
  • [GROOVY-5638] - static compiler fails with bug massage for method call in loop increment
  • [GROOVY-5639] - Spurious "Closure shared variable has been assigned with various type" exception
  • [GROOVY-5640] - static type checking fails in for-each loops
  • [GROOVY-5641] - for variable omitted type makes Caught: BUG! exception in phase 'class generation'
  • [GROOVY-5642] - TypeChecked/CompileStatic says ambiguous about calling PrintWriter.write(byte[],int,int)
  • [GROOVY-5643] - array length is not correct with CompileStatic'd code.
  • [GROOVY-5644] - UFO Operator() errors with CompileStatic and TypeChecked
  • [GROOVY-5645] - CompileStatic cause inconsistent compilation error when varargs super method called (reference to method is ambiguous)
  • [GROOVY-5647] - SKIP is not honored when an inner class is defined in a SKIP method
  • [GROOVY-5649] - Stack overflow when property accessor is annoated with @CompileStatic
  • [GROOVY-5650] - Groovy 2.0.1: Regression in generic type inference
  • [GROOVY-5653] - STC: non ambiguous method call reported ambiguous
  • [GROOVY-5654] - SC: Problem accessing a Map string key with property notation
  • [GROOVY-5655] - SC: byte[] and Byte[] typecasting issue
  • [GROOVY-5656] - STC: non ambiguous constructor reference when subclass is used
  • [GROOVY-5657] - SC: Unable to pop operand off an empty stack with default/optional paramaters
  • [GROOVY-5658] - SC: issue with optional parameters generating an NPE
  • [GROOVY-5659] - VerifyError when CompileStatic with Increment Array Element
  • [GROOVY-5660] - JsonOutput Date formatting is not threadsafe
  • [GROOVY-5662] - java.lang.VerifyError when accessing array passed to method
  • [GROOVY-5664] - OSGi bundle hangs in "starting" state
  • [GROOVY-5666] - Incorrectly finding "where" in query string
  • [GROOVY-5668] - Input stream not closed
  • [GROOVY-5669] - DOMCategory should provide name() convenience method for Node's not just Element's
  • [GROOVY-5671] - Static compilation of calling increment operator on Integer fails
  • [GROOVY-5672] - groovyc produces AIOOBE if @TypeChecked used with @CompileStatic in certain circumstances
  • [GROOVY-5678] - (primopts) increment on array not done as primopt
  • [GROOVY-5679] - Enclosing method is not set for anonymous inner classes
  • [GROOVY-5681] - Anonynous inner class as default argument value throws IOOBE
  • [GROOVY-5683] - Accessing length of an array of arrays occurs VerifyError
  • [GROOVY-5687] - Constants defined in an interface not visible to implementing subclass in a static context
  • [GROOVY-5688] - NullPointerException in StaticTypeCheckingVisitor
  • [GROOVY-5689] - ClassCastException Double->Float with -= += operators and closures
  • [GROOVY-5690] - Compiler exception while applying to @CompileStatic and subclasses
  • [GROOVY-5691] - TimeoutException immediately thrown when using both TimedInterrupt and with {} closure on a Map
  • [GROOVY-5692] - TypeChecked not checking generics placeholder types across arguments when a method has multiple arguments
  • Improvement:
  • [GROOVY-5646] - Allow customization of @Singleton's instance getter name
  • [GROOVY-5680] - collectMany should have a map variant
  • New Feature:
  • [GROOVY-5682] - Add clone or copy constructor to XML Node

New in Groovy 2.0.1 (Jul 25, 2012)

  • Bug:
  • [GROOVY-5208] - Incorrect line numbers in code using optimized primitive operations
  • [GROOVY-5466] - Invalid code crashes the compiler
  • [GROOVY-5508] - Verifier fails to check property types with covariant override
  • [GROOVY-5543] - Grab a Module Extension fails to match Map objects
  • [GROOVY-5556] - GAPI on codehaus doesn't appear to have subproject groovydoc (check gradle build dist target)
  • [GROOVY-5557] - @Slf4j throws error in Groovy 2.0
  • [GROOVY-5559] - Type checker should treat gstrings as strings for generic collections
  • [GROOVY-5562] - GroovyFX - Class Cast Exception on BigDecimal to double when using Groovy 2.0 Indy="true"
  • [GROOVY-5564] - @CompileStatic(SKIP) throws an error
  • [GROOVY-5565] - NPE when using TypeChecking and AIC with field
  • [GROOVY-5566] - possible bug when applying static typing to AIC referencing an outer local variable
  • [GROOVY-5567] - Types not inferred correctly for static fields
  • [GROOVY-5568] - DGM properties not available in interfaces?
  • [GROOVY-5569] - Can't call method with concrete map implementation and generic arguments
  • [GROOVY-5570] - CompileStatic gives VerifyError: Register 1 contains wrong type
  • [GROOVY-5572] - Invalid behaviour of ?: operator within an 'if' statement in closure
  • [GROOVY-5573] - Type checker incorrectly selecting DGM return type instead of actual return type
  • [GROOVY-5574] - Log4j annotation causes class generation BUG!
  • [GROOVY-5578] - Cannot use default map constructor with Java classes and type checking
  • [GROOVY-5579] - Static compiler sometimes use setProperty where it could make direct access
  • [GROOVY-5580] - @CompileStatic doesn't support interfaces extending other interfaces
  • [GROOVY-5581] - Compilation order important to CompileStatic
  • [GROOVY-5583] - Parsing problem of number literal 0x8000000000000000L
  • [GROOVY-5584] - @CompileStatic fails to compile Map.each { key, value -> } form
  • [GROOVY-5585] - interface.property not recognized by type checker if property is of Object
  • [GROOVY-5586] - @Canonical class causes compile-time NPE under @StaticCompilation
  • [GROOVY-5587] - Map.Entry#key and #value fail to infer type correctly under @StaticCompile
  • [GROOVY-5588] - Multidimensional Arrays: Incompatible argument to function
  • [GROOVY-5589] - Type checker doesn't allow property notation as LHS when only a setter exists
  • [GROOVY-5590] - Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Cannot run program "find": java.io.IOException: error=24, Too many open files
  • [GROOVY-5591] - groovy-all-2.0.0-sources.jar is missing lots of source files
  • [GROOVY-5592] - No recent snapshot for 2.0.1 available from http://snapshots.repository.codehaus.org
  • [GROOVY-5593] - groovy-all-2.0.0 does not work with JDK 1.5
  • [GROOVY-5594] - Type checker doesn't infer property type if coming from a generified getter
  • [GROOVY-5595] - Type checker doesn't fully infer Map.Entry type
  • [GROOVY-5598] - Cannot use @CompileStatic with Thread.start method
  • [GROOVY-5601] - static type checker NPE when instantiating generic interface (with and without diamond)
  • [GROOVY-5605] - Class Cast Exception when using Groovy 2.0 Indy="true" and using an integer with a double.
  • [GROOVY-5606] - Problem with CompileStatic
  • [GROOVY-5607] - @Compile static Sql.newInstance
  • [GROOVY-5608] - @CompileStatic casting problem
  • [GROOVY-5611] - Annotating a method with @CompileStatic when the class is already annotated leads to errors
  • [GROOVY-5612] - Fix "gradle idea" task
  • [GROOVY-5613] - @CompileStatic - Caught: java.lang.VerifyError - Inconsistent stack height 1 != 2
  • [GROOVY-5614] - Diamond Inference broken with Static Compilation
  • [GROOVY-5615] - var.getProperties() cannot be invoked as var.properties when using @CompileStatic
  • [GROOVY-5616] - Compile static failing to allow cast of groovy type to GroovyObject
  • [GROOVY-5617] - strange behavior with lists involving generics
  • [GROOVY-5618] - Type checker throws No such property: value for class: java.lang.Object
  • [GROOVY-5619] - Static compiler calls setter even with attribute notation
  • [GROOVY-5620] - Spread-safe operator unsupported on LHS of assignments
  • [GROOVY-5622] - Cannot loop using foreach or "for in" in @TypeChecked code
  • [GROOVY-5623] - collection's "each" fails if compiled with @CompileStatic
  • Improvement:
  • [GROOVY-5561] - When using @CompileStatic you cannot access class properties in some circumstances
  • [GROOVY-5577] - Augmenting the new AST node types introduced by compile static
  • [GROOVY-5597] - Add a label lookup feature to @ASTTest
  • [GROOVY-5599] - Assignments to null of variables with generics lead to cryptic errors
  • New Feature:
  • [GROOVY-5542] - Support Mac OS X Lion full screen capability

New in Groovy 2.0.0 (Jul 11, 2012)

  • a static type checker to let the compiler tell you about the correctness of your code,
  • static compilation for the performance of the critical parts of your application,
  • modularity, splitting the Groovy JAR into smaller feature-oriented JARs and letting you create your own extension modules,
  • JDK 7 Project Coin syntax enhancements, so that Groovy is still as friendly as possible with its Java cousin,
  • JDK 7 Invoke Dynamic integration to benefit from the support of the JVM for dynamic languages.

New in Groovy 1.9 Beta 1 (Jul 25, 2011)

  • Bug:
  • [GROOVY-2177] - Groovysh 'history recall' seems to be picking the wrong entry (off by 1)
  • [GROOVY-2914] - LoadConfiguration fails to load *.jar
  • [GROOVY-4306] - Groovy Console Icon for Mac OS X broken
  • [GROOVY-4480] - Parsing seems to have changed in 1.8
  • [GROOVY-4498] - Only the root exception in a script is printed
  • [GROOVY-4504] - Groovy compilation results in warnings in generated code
  • [GROOVY-4601] - Stub generator doesn't escape strings with mixed single and double quotes
  • [GROOVY-4609] - Using log variable created with @Log or @Log4j causes compiler error if used in static method
  • [GROOVY-4691] - Grails 1.3.7 breaks bean-fields plugin
  • [GROOVY-4695] - anonymous classes InnerClassNode has -1 for line numbers
  • [GROOVY-4707] - Scripts' class nodes didn't have correct source positions
  • [GROOVY-4709] - @Interrupt AST transformations should not be applied on abstract methods
  • [GROOVY-4719] - Groovy build fails in tests - test RedundantCastInStubTest fails
  • [GROOVY-4720] - Method overriding with ExpandoMetaClass is partially broken
  • [GROOVY-4746] - broken @link in MetaObjectProtocol.java's javadoc
  • [GROOVY-4748] - javadoc comment problems which breaks generated HTMLs
  • [GROOVY-4781] - @WithReadLock and @WithWriteLock creates the wrong locks
  • [GROOVY-4782] - @Singleton(lazy=true) does not perform the correct double checked locking for Java
  • [GROOVY-4806] - Sql.eachRow documentation: actual GroovyResultSet vs. documentation GroovyRowResult
  • [GROOVY-4813] - GroovyScriptEngine does not use configured ImportCustomizer
  • [GROOVY-4818] - JsonSlurper's methods are package private
  • [GROOVY-4833] - @Field AST Transformation looses annotations
  • [GROOVY-4840] - LogASTTransformation fails if super class defines a private log field
  • [GROOVY-4854] - MyEnum.values() bombs out on AppEngine
  • [GROOVY-4866] - Documentation incorrect for Object#with
  • [GROOVY-4881] - JsonSlurper does not handle backslash
  • [GROOVY-4903] - StackOverflowError when parsing JSON text with JsonSlurper().parseText()
  • [GROOVY-4915] - Wrong access modifiers in JsonSlurper
  • Improvement:
  • [GROOVY-1570] - Truncate string when when generating MissingMethodException
  • [GROOVY-3401] - Ternary operator ?: does not handle newline before ":" gracefully
  • [GROOVY-4595] - Project Coin underscore placeholder in numbers
  • [GROOVY-4664] - Add @ThreadInterrupt to console scripts automatically
  • [GROOVY-4671] - DGM#inject can be generified
  • [GROOVY-4675] - Prefer ClassHelper.make(Class) over new ClassNode(Class)
  • [GROOVY-4690] - Allow PrimaryClassNodeOperations to be added to CompilerConfiguration
  • [GROOVY-4693] - GDK groovydocs for String.padXXX are not very clear [new wording attached]
  • [GROOVY-4703] - Improve FactoryBuilderSupport exception messages
  • [GROOVY-4713] - typo( lists -> maps ) in GDK doc comment
  • [GROOVY-4724] - add support for overriding package-, doc- or class-templates in Groovydoc descendant classes
  • [GROOVY-4779] - add syntax highlighting to the AST Browser decompiled source view
  • [GROOVY-4785] - Improve Closure javadoc for resolution strategy
  • [GROOVY-4800] - Avoid too many temporary arrays with each and eachWithIndex
  • [GROOVY-4814] - When working with ClassNodes, sometimes need to call getFields() before getField() will work (lazy init)
  • [GROOVY-4815] - force annotations on variables to be included in ast transforms
  • [GROOVY-4824] - groovyConsole should support more common file types: .story, .gpp, and .grunit
  • [GROOVY-4830] - GroovyConsole: Decompiled View should show method and class annotations
  • [GROOVY-4842] - Make @ThreadInterrupt optional in Groovy console
  • [GROOVY-4860] - Enable JsonBuilder to work with objects recursively
  • [GROOVY-4897] - better tab completions for GroovyShell
  • [GROOVY-4925] - JsonBuilder with Writer support would be handy
  • New Feature:
  • [GROOVY-1512] - When executing command-line scripts it should be possible to execute a BEGIN and an END method (akin to AWK or Perl)
  • [GROOVY-1984] - Shorther syntax for catching multiple exceptions at once
  • [GROOVY-4594] - Project Coin binary literals
  • [GROOVY-4865] - Add a take method to Collections, Iterators, Arrays
  • [GROOVY-4885] - groupBy with a list or an array of closures as it's parameter for nested grouping

New in Groovy 1.8.1 (Jul 25, 2011)

  • Sub-task:
  • [GROOVY-1475] - final modifier on a method parameter is not respected
  • Bug:
  • [GROOVY-2883] - Bug in AntBuilder - DemuxOutputStream should be used
  • [GROOVY-3088] - Modifiers on local variables are ignored
  • [GROOVY-4112] - Joint compilation fails if Groovy method with array parameter is called in vararg style from Java
  • [GROOVY-4306] - Groovy Console Icon for Mac OS X broken
  • [GROOVY-4498] - Only the root exception in a script is printed
  • [GROOVY-4570] - @ToString does not work for enum types
  • [GROOVY-4646] - Having a setter with a return value causes the stub generator to generate multiple setters and then fail to compile
  • [GROOVY-4650] - stub generation fails with generic signatures
  • [GROOVY-4673] - java.lang.ClassFormatError: Illegal class name "groovy/jmx/builder/package-info" in class file groovy/jmx/builder/package-info
  • [GROOVY-4686] - Varargs are not displayed by GroovyDoc
  • [GROOVY-4732] - Java5 configureClassNode does not take care of parameter annotations
  • [GROOVY-4745] - ClassNode.equals throws ClassCastException for object of other type
  • [GROOVY-4767] - Compilation error for generic interface method
  • [GROOVY-4768] - java stub contains "AnnotationNode" string instead of an annotation within an annotation
  • [GROOVY-4784] - [ null, 'ah' ].findAll() throws a NullPointerException
  • [GROOVY-4801] - Thrown exception not accessable inside catch block when class has @Category transformation applied
  • [GROOVY-4806] - Sql.eachRow documentation: actual GroovyResultSet vs. documentation GroovyRowResult
  • [GROOVY-4813] - GroovyScriptEngine does not use configured ImportCustomizer
  • [GROOVY-4818] - JsonSlurper's methods are package private
  • [GROOVY-4827] - @EqualsAndHashCode.excludes doesn't work correctly with class inheritance
  • [GROOVY-4831] - New line character is not escaped in attribute when using MarkupBuilder
  • [GROOVY-4833] - @Field AST Transformation looses annotations
  • [GROOVY-4840] - LogASTTransformation fails if super class defines a private log field
  • [GROOVY-4844] - @ToString should use getX() rather than the field x when getting property values
  • [GROOVY-4854] - MyEnum.values() bombs out on AppEngine
  • [GROOVY-4861] - Duplicate entry in InnerClasses
  • [GROOVY-4864] - HTML builder for "textarea" creates empty "textarea" element if no text specified, which is not alloed in HTML
  • [GROOVY-4866] - Documentation incorrect for Object#with
  • [GROOVY-4881] - JsonSlurper does not handle backslash
  • [GROOVY-4884] - Calling a method overwritten via metaClass from another method uses the original (non-overwritten) method
  • [GROOVY-4890] - MapExpression#getText incorrect for empty map
  • [GROOVY-4892] - GroovyInterceptable / invokeMethod does not correctly in Groovy 1.8.0 when Methods with no arguments are "delegated"
  • [GROOVY-4898] - groovydoc fails with MissingPropertyException
  • [GROOVY-4902] - Groovy class not compatible with Java integration when @Immutable is used
  • [GROOVY-4903] - StackOverflowError when parsing JSON text with JsonSlurper().parseText()
  • [GROOVY-4907] - Command line interface of AstNodeToScriptAdapter.groovy don't works
  • [GROOVY-4909] - insufficient compiler error messages relating to interface member visibility
  • [GROOVY-4914] - FieldNode doesn't collect annotations
  • [GROOVY-4915] - Wrong access modifiers in JsonSlurper
  • [GROOVY-4916] - Set equality fails if null elements are present
  • [GROOVY-4920] - Default values for primitives error in groovy 1.8.0
  • [GROOVY-4923] - Creating Pattern from declared String variable with pattern = ~stringvariable fails
  • [GROOVY-4924] - Class implementing a generic interface causes VerifyError
  • [GROOVY-4935] - stub generator loses package qualification for generic type argument
  • [GROOVY-4936] - package protected method in Parent class cannot be called
  • Improvement:
  • [GROOVY-1570] - Truncate string when when generating MissingMethodException
  • [GROOVY-3401] - Ternary operator ?: does not handle newline before ":" gracefully
  • [GROOVY-3921] - Add connection configuration options to URL.getText(), URL.newInputStream() and URL.newReader()
  • [GROOVY-4223] - Add local maven repo to default Grape config
  • [GROOVY-4798] - To support PreparedStatement.addBatch()
  • [GROOVY-4814] - When working with ClassNodes, sometimes need to call getFields() before getField() will work (lazy init)
  • [GROOVY-4815] - force annotations on variables to be included in ast transforms
  • [GROOVY-4824] - groovyConsole should support more common file types: .story, .gpp, and .grunit
  • [GROOVY-4842] - Make @ThreadInterrupt optional in Groovy console
  • [GROOVY-4848] - Allow custom exception class to be thrown in @Interrupt AST transformations
  • [GROOVY-4849] - @EqualsAndHashCode should use getX() instead of x when accessing properties
  • [GROOVY-4860] - Enable JsonBuilder to work with objects recursively
  • [GROOVY-4876] - @Newify works for pre-defined classes but not for classes defined in the same script
  • [GROOVY-4880] - Make ASTTransformationCustomizer handle annotation parameters
  • [GROOVY-4889] - An IDENTITY closure could be made available
  • [GROOVY-4893] - Minor enhancement to provide no-arg versions of DGM grep(), find() and findAll() methods
  • [GROOVY-4894] - 'includes' attribute in EqualsAndHashCode
  • [GROOVY-4897] - better tab completions for GroovyShell
  • [GROOVY-4899] - findResults object/collection/map enhancement patch (CLONED from findResult)
  • [GROOVY-4904] - Map.inject() doesn't accept closure with 3 arguments (collector, key, value), only 2 (collector, Map.Entry)
  • [GROOVY-4925] - JsonBuilder with Writer support would be handy
  • [GROOVY-4929] - rename DGM collectAll to collectNested - keep original as an alias for the time being with a view to deprecating/removing eventually
  • [GROOVY-4932] - groovy should provide a shorthand for: collect{}.flatten()
  • New Feature:
  • [GROOVY-1512] - When executing command-line scripts it should be possible to execute a BEGIN and an END method (akin to AWK or Perl)
  • [GROOVY-4865] - Add a take method to Collections, Iterators, Arrays
  • [GROOVY-4885] - groupBy with a list or an array of closures as it's parameter for nested grouping

New in Groovy 1.7 Beta 2 (Oct 15, 2009)

  • GROOVY-3732 FIXED Groovyc throws exception in code using ASTTransformations Blocker Resolved
  • GROOVY-3658 FIXED function call in assigning default method parameter throws: Expecting to find object/array on stack Blocker Resolved
  • GROOVY-3798 FIXED Incorrect generated bytecode (duplicate field and method) on service with multiple methods returning array of same type Blocker Closed
  • GROOVY-3578 FIXED Ordering of files passed to compiler affects whether some (invalid) generics errors get reported Blocker Closed
  • GROOVY-3806 FIXED Sql.java contains assertion which is always false Critical Resolved
  • GROOVY-3716 FIXED groovyc doesn't catch wrong return type in overriding method Critical Resolved
  • GROOVY-3777 FIXED Compiler behaviour different between script and compilation; line numbers missing in error message Critical Closed
  • GROOVY-3727 FIXED Nested top-level class causes problems Critical Closed
  • GROOVY-3784 FIXED @Delegate breaks use of Generics Major Resolved
  • GROOVY-2655 FIXED Add an option for not fetching dependencies automatically using Maven when building Groovy Major Resolved
  • GROOVY-3665 FIXED Allow subclasses of groovy.sql.Sql to get ResultSet Major Resolved