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.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 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