Changelog for Groovy 1.7.0

Bug

  • [GROOVY-1643] - Please use parser.getASTFactory().setASTNodeClass(GroovySourceAST.class)
  • [GROOVY-2212] - Cannot load the class method after updated, failed after 1.1
  • [GROOVY-2271] - Mocks are not used by the delegate of a closure
  • [GROOVY-2352] - Late and superfluous setting of default values on primitives in subclasses
  • [GROOVY-2382] - 64K limit on strings -- Caught: java.lang.ClassFormatError: Unknown constant tag 84 in class file test
  • [GROOVY-2409] - Problems calling private static methods
  • [GROOVY-2441] - @Deprecated does not have effect in Groovy
  • [GROOVY-2531] - VerifyError with -- var -- and (var--)--
  • [GROOVY-2582] - cannot extend java.util.Properties unless getProperty() is overridden
  • [GROOVY-2583] - "object is not an instance of declaring class" thrown invoking a method on Groovy class, wrapped in a Spring proxy
  • [GROOVY-2605] - Incorrect parsing
  • [GROOVY-2621] - Local variable shadows method in closure call, even if method is called with this keyword.
  • [GROOVY-2657] - Code: def Target = "releases$" returns error on line 0 / column 0
  • [GROOVY-2665] - static typing issue: adding a string to an Integer
  • [GROOVY-2687] - VerifyError on incorrect function call
  • [GROOVY-2696] - Joint compiler does not honour JavaBean spec for boolean properties
  • [GROOVY-2746] - Static import of method with default parameter value: MissingMethodException
  • [GROOVY-2760] - groovyc compiles file, but running it fails with java.lang.VerifyError
  • [GROOVY-2779] - GPath evaluation problem for html with namespace
  • [GROOVY-2801] - Override toString in coerced Map fails for interfaces but is ok for concrete classes
  • [GROOVY-2836] - Misleading MissingMethodException thrown when this() is called inside a constructor
  • [GROOVY-2849] - A property name in a nested closure interferes with a class property when refering with "this.prop"
  • [GROOVY-2850] - VerifyError when using increment operator on value
  • [GROOVY-2886] - Wrong method is called when using default arguments
  • [GROOVY-2887] - Default argument is not used
  • [GROOVY-2894] - Accessing the implicit parameter of a closure from an inner closure causes a Verify Error
  • [GROOVY-2897] - Accessors for boolean properties are not generated properly
  • [GROOVY-2918] - problem with default namespace in StreamingSAXBuilder
  • [GROOVY-2933] - List Parameter in Enum constructor with misbehavior
  • [GROOVY-2951] - Cannot override instance methodMissing() in ExpandoMetaClass
  • [GROOVY-2962] - groovyc ant task creates invalid stub
  • [GROOVY-2969] - parameter annotations for constructors do not show up in runtime environment
  • [GROOVY-2979] - Cannot launch Groovy on Windows with MSYS
  • [GROOVY-2982] - GroovyClassLoader parseClass does not provide annotation support
  • [GROOVY-2983] - wrong line number in 1.6 for getting an property
  • [GROOVY-3033] - /= assignment operator breaks type system
  • [GROOVY-3038] - Cannot use "final" modifier on iterator in for (...) loops
  • [GROOVY-3043] - Command line arguments containing * (asterisk) not passed correctly
  • [GROOVY-3044] - preserve classLoader in Script.evaluate() method
  • [GROOVY-3045] - JVM properties are not correctly used under Linux
  • [GROOVY-3054] - ClassFormatError: Illegal class name Exception when running a script from a folder with dot in its name
  • [GROOVY-3057] - SimpleTemplateEngine / TemplateEngine does not close Readers
  • [GROOVY-3067] - Incorrect line number reporting when exception occurs inside if statement
  • [GROOVY-3069] - Closure does not have scope precedent over local method
  • [GROOVY-3079] - groovysh does not run when CLASSPATH includes embeddable/groovy-all.jar
  • [GROOVY-3084] - Groovy scripts can't access the 'args' property anymore to get the arguments from the command line
  • [GROOVY-3085] - Performance regression with MarkupBuilder in 1.6 beta 2
  • [GROOVY-3089] - compile error with covariant bridge method added for already existing method
  • [GROOVY-3090] - ObjectGraphBuilder does not set itself as delegate on closure strategies
  • [GROOVY-3097] - Half-exclusive range with int value on left and short value on right always contains a single element
  • [GROOVY-3102] - NPE with flatten() in case of null elements in the collection
  • [GROOVY-3109] - StackOverflowError with DOMCategory and missing property
  • [GROOVY-3120] - closure fails to call missingMethod in delegate
  • [GROOVY-3121] - Can't define a target not including TYPE for annotation definitions
  • [GROOVY-3123] - while(true) {} could be optimized
  • [GROOVY-3124] - for(;;) {} does not behave the same as in Java
  • [GROOVY-3125] - Some GroovyClassLoader issues around recompile
  • [GROOVY-3128] - VerifyError for class definition in script edge case
  • [GROOVY-3129] - Compile-error when implementing a method from a generic interface
  • [GROOVY-3135] - Incorrect array type created when calling vararg method
  • [GROOVY-3139] - StubFor: No more calls to 'openConnection' expected at this point. End of demands
  • [GROOVY-3143] - GroovyDoc: WindowTitle is ingnored
  • [GROOVY-3155] - Stack overflow during compilation
  • [GROOVY-3156] - Within a nested closure, "this.method()" works incorrectly if parent closure and outermost class have closures/methods of the same name
  • [GROOVY-3161] - Wrong initialization order for static fields in enums
  • [GROOVY-3163] - static foo(Closure) hides super.foo(Bar)
  • [GROOVY-3165] - Regression in assignment of single character strings to char array element
  • [GROOVY-3167] - Integers not automatically converted to Bytes
  • [GROOVY-3168] - groovyc fails silently w/o any error message
  • [GROOVY-3170] - XmlNodePrinter does not handle attribute namespaces correctly
  • [GROOVY-3175] - Some generated fields not marked as synthetic
  • [GROOVY-3181] - Cannot create instances of @Immutable classes that have single Map field
  • [GROOVY-3182] - Wrong line number on PropertyMissingException
  • [GROOVY-3184] - ClassExpression's of the form "SomeType.class" have wrong lastColumnNumber
  • [GROOVY-3187] - ServletBinding lies about what variables it can handle
  • [GROOVY-3191] - Groovysh cannot be extended
  • [GROOVY-3198] - Equal instances of an @Immutable class give different values when used as map keys
  • [GROOVY-3200] - Map coercion should not throw an NPE for non implemented methods from the map
  • [GROOVY-3203] - ProxyGenerator.instantiateDelegate(Map, Class) behavior should align with ConvertedMap behavior
  • [GROOVY-3205] - Cannot override toString() in a "mapOfClosures as AClass" implementation
  • [GROOVY-3207] - XmlNodePointer does not handle namespace prefixes with repeated URNs
  • [GROOVY-3213] - DGM.unique(Collection, Closure) is broken for Sets
  • [GROOVY-3214] - Strange Groovy bug for Maps in a Enums method
  • [GROOVY-3219] - NamespaceBuilder does not create child nodes
  • [GROOVY-3222] - GroovyCastException with SwingBuilder.bind
  • [GROOVY-3223] - Nested javac Ant task does not do property substitution on its attributes
  • [GROOVY-3226] - org.codehaus.groovy.tools.LoaderConfiguration fails to implement glob in expected fashion
  • [GROOVY-3229] - Can't subclass PrintWriter
  • [GROOVY-3238] - String.valueOf(BigInteger) doesn't call String.valueOf(Object)
  • [GROOVY-3242] - metaclass and curry() gives MissingMethodException
  • [GROOVY-3245] - DGM.readLines(String) incorrectly loses empty lines.
  • [GROOVY-3257] - XmlNodePrinter has protected methods that cannot be overriden
  • [GROOVY-3259] - Fix use of deprecated API in Apache Ant
  • [GROOVY-3264] - DGM#denormalize - Mac style line breaks and empty string
  • [GROOVY-3269] - XmlTemplateEngine does not handle namespace prefixes correctly
  • [GROOVY-3271] - Update antlib.xml and add to Groovy JAR
  • [GROOVY-3274] - Classloader does not find resources properly
  • [GROOVY-3275] - Process.consumeProcessOutput leads to a race condition
  • [GROOVY-3276] - Enums in 1.6-RC-1 no longer work with constructors with multiple parameters
  • [GROOVY-3277] - StackOverflowError with mixins
  • [GROOVY-3281] - GroovyScriptEngine doesn't inherit CompilerConfiguration from parent classloader
  • [GROOVY-3283] - Can't "import static" more than one enum
  • [GROOVY-3284] - Call behavior on enums is inconsistent
  • [GROOVY-3286] - DefaultGroovyMethods#reverse(String) does not reverse strings correctly
  • [GROOVY-3293] - Return statements of the form "return;" have wrong source position
  • [GROOVY-3301] - Groovy annotations not working with Hibernate
  • [GROOVY-3303] - DGM File.append( byte[] ) overwrites existing file
  • [GROOVY-3304] - NullPointerException in LabelVerifier
  • [GROOVY-3305] - Can't use list argument when The method's first argument class is int
  • [GROOVY-3311] - NPE on Groovy 1.6-RC2: Cannot invoke method times() on null object
  • [GROOVY-3315] - Calling a vararg method with no varargs causes IllegalArgumentException
  • [GROOVY-3317] - args passed from ant to groovy script: comes up blank
  • [GROOVY-3318] - Javac doesn't see synthetic Groovy methods in Groovy-compiled superclass
  • [GROOVY-3323] - compiler report error when using @Delegate to implement an interface
  • [GROOVY-3333] - Bindable/Vetoable ast transformations are missing a listener query method
  • [GROOVY-3335] - Exception while evaluating classes with static toString() methods
  • [GROOVY-3339] - Calling a method that takes a closure containing a list or number (and maybe others) constant throws a weird exception
  • [GROOVY-3345] - Proxy of a Proxy Fails
  • [GROOVY-3346] - DocGenerator truncates summary comment at first full stop rather than proper sentence boundary
  • [GROOVY-3353] - Category methods are not inherited
  • [GROOVY-3359] - GString.split() broken
  • [GROOVY-3363] - hasProperty and respondsTo on Object are broken as they're not defined as static in DGM
  • [GROOVY-3365] - Help/About gives NPE on secondary windows
  • [GROOVY-3367] - property expressions using "this" as object part won't work in combination with @Category
  • [GROOVY-3368] - Collection.sort{Closure} regression
  • [GROOVY-3370] - Generated Setter for boolean causes "Repetitive method name/signature..."
  • [GROOVY-3380] - @Delegate throws exception when the delegate target has private superinterface
  • [GROOVY-3383] - Problem with using .class in an interface def in Groovy 1.6
  • [GROOVY-3389] - Field Hiding Behavior Regression
  • [GROOVY-3397] - BigInteger losts precition during conversion to BigInteger using 'as' keyword
  • [GROOVY-3403] - CLONE -StubFor: No more calls to 'openConnection' expected at this point. End of demands
  • [GROOVY-3405] - static methods added through metaClass can't have default values for parameters
  • [GROOVY-3406] - GroovyRuntimeException thrown Ambiguous method overloading when accessing metaClas of java.lang.String
  • [GROOVY-3407] - lazyClassInit is called on proxy ClassNodes
  • [GROOVY-3410] - VerifyError appears with boolean method and long or larger primitive type in conditional operand of ternary statement
  • [GROOVY-3416] - Iterator returned by MetaClassRegistryImpl.iterator() throws ArrayIndexOutOfBoundsException upon call to hasNext() if registry is empty
  • [GROOVY-3418] - @Bindable and final don't work together
  • [GROOVY-3423] - Imports of the form "import static SimpleClassName.*" cause compile error
  • [GROOVY-3424] - Cannot intercept constructors
  • [GROOVY-3426] - Cannot restore the original metaclass after intercepting static method
  • [GROOVY-3428] - Call site of static property is not updated after meta class is changed
  • [GROOVY-3429] - Call site of POJO is not updated after meta class is changed
  • [GROOVY-3433] - Callsite caching breaks the use of Hibernate proxies when combined with inheritance
  • [GROOVY-3434] - releaseResources should not close connection when within cacheConnect()
  • [GROOVY-3438] - Amendments related to strict security managers
  • [GROOVY-3442] - @Singleton doesn't support getInstance() as documented
  • [GROOVY-3449] - groovyc in 1.6.0 no longer supports 'deprecation' attribute on nested javac
  • [GROOVY-3450] - Ant properties don't work within the source / target attributes on javac Ant task within groovyc task
  • [GROOVY-3455] - Multiple Assignment in loop -> Inconsistent stack height 1 != 0
  • [GROOVY-3460] - duplicate class definition bei "interface x extends y"
  • [GROOVY-3462] - default closure parameter causes BUG! exception in phase 'class generation'
  • [GROOVY-3465] - Can't call statically imported method with named arguments
  • [GROOVY-3468] - NullPointerException in GroovyClassLoader.getPermissions() when called from BSFManager.exec()
  • [GROOVY-3470] - In SwingBuidler bind() validator: attribute doesn't pass value as closure arg
  • [GROOVY-3471] - @Delegate not working when it refers to a Map
  • [GROOVY-3473] - Javadocs for XmlNodePrinter describe wrong default value for preserveWhitespace
  • [GROOVY-3474] - StackOverflowError with mixins and closures
  • [GROOVY-3479] - DomToGroovy produces invalid output when namespaces are used in the source xml
  • [GROOVY-3480] - Spring AOP proxies broken
  • [GROOVY-3483] - Problems with inner enum
  • [GROOVY-3485] - memory leak in ClassInfo#LocalMap
  • [GROOVY-3486] - Some Groovy package names don't follow Java Language Lexical Structure and OSGi specification
  • [GROOVY-3491] - Problem with @Newify
  • [GROOVY-3498] - Closure is magically invoked
  • [GROOVY-3501] - NPE at groovy.lang.GroovyClassLoader.getPermissions(GroovyClassLoader.java:342)
  • [GROOVY-3502] - ConcurrentModificationException in GraphicsRenderer() -> ExpandoMetaClass -> ClassInfo
  • [GROOVY-3503] - Bi-directional binding does not work with synthetic or event triggered bindings
  • [GROOVY-3506] - ExpressionTransformer pattern doesn't work reliably
  • [GROOVY-3509] - GPath inconsistency
  • [GROOVY-3510] - NPE in MetaClassRegistryImpl
  • [GROOVY-3511] - Misleading exception in String to Number conversions
  • [GROOVY-3512] - Thread safety issue related to addBasicPersistenceMethods? explodes with an ArrayIndexOutOfBoundsException
  • [GROOVY-3513] - Memory leak in GroovyCategorySupport
  • [GROOVY-3515] - named parameters doesn't warn/produce an error when duplicates are given
  • [GROOVY-3516] - Fix introduced for GROOVY-3436 created a situation that can result in a stackoverflowerror with some groovy config objects
  • [GROOVY-3522] - keyStrokeAction shouldn't presume text is a shortcut
  • [GROOVY-3523] - Groovy needs to upgrde Ivy lib to upgrade maven hashing algorithm
  • [GROOVY-3527] - groovyc ant task generates invalid class name with IBM jdk and some build.xml paths
  • [GROOVY-3528] - trying access noon static field from static method leads to VerifyError
  • [GROOVY-3530] - Can't read from console when running a <groovy in Ant in Eclipse
  • [GROOVY-3532] - GroovyConsole AST Viewer fails when trying to display AST for inner classes and anonymous inner classes
  • [GROOVY-3537] - getPackage() on Class Always Returns Null
  • [GROOVY-3542] - GroovyShell.evaluate(File) NPE
  • [GROOVY-3543] - error inside @Category when using multiple properties other than this
  • [GROOVY-3544] - GroovyConsole AST Viewer creates duplicate nodes in the tree view for some top level nodes
  • [GROOVY-3545] - GroovyConsole AST Viewer does find AstBrowserProperties.groovy, so nodes have bad node names
  • [GROOVY-3551] - strange error accessing property following method call in @Category class, invokeStaticMissingMethod
  • [GROOVY-3552] - new "power" assertion messages do not work in GroovyConsole and groovysh
  • [GROOVY-3556] - 'this' reference in closure of a closure not correctly resolved when using @Category annotation
  • [GROOVY-3560] - IllegalArgumentException with interface typed varargs
  • [GROOVY-3564] - GroovyConsole AST Viewer command line interface broken
  • [GROOVY-3571] - equals method for @Immutable classes not correctly looking at other's class
  • [GROOVY-3574] - Closure.toString() calls the closure
  • [GROOVY-3575] - RuntimeException in SwingBuilder data binding
  • [GROOVY-3576] - Verifier#getMetaClassField(ClassNode) can throw a NPE
  • [GROOVY-3577] - AbstractReaderSource.getLine always returns null when no Janitor
  • [GROOVY-3578] - Ordering of files passed to compiler affects whether some (invalid) generics errors get reported
  • [GROOVY-3579] - TableModelFactory disposal removeProppertyChangeListener
  • [GROOVY-3583] - Grape issues
  • [GROOVY-3589] - cast with as keyword produces error unlike versions 1.5 and before
  • [GROOVY-3590] - Map.get(key, defaultvalue) doesn't work properly if current value is null.
  • [GROOVY-3591] - Test faiing on Mac OS X with the latest JDK update
  • [GROOVY-3594] - line breakpoint breaks execution as many times as many expressions are on that line
  • [GROOVY-3595] - Bad Error Message in SingletonASTTransformation
  • [GROOVY-3596] - Generic Map reference fails to compile
  • [GROOVY-3599] - BindingProxy.setModel() disconnects listeners
  • [GROOVY-3603] - imageIcon and other such "default text" nodes should auto-convert fom GStrings to Strings
  • [GROOVY-3606] - @Bindable generates wrong byte code depending on compilation order
  • [GROOVY-3607] - FactoryBuilderSupport throws NPE when registering a factory under special conditions
  • [GROOVY-3609] - groovysh display command shows wrong line numbers
  • [GROOVY-3611] - CLONE -Compile-error when implementing a method from a generic interface
  • [GROOVY-3615] - Groovyc does not set ACC_SUPER for classes
  • [GROOVY-3621] - Groovy swallowing exceptions when MissingMethodException occurs with a closure that throws an exception
  • [GROOVY-3622] - gpath regression: lists of lists are no longer flattened as in Groovy 1.0
  • [GROOVY-3623] - A call to MetaClassRegistry.removeMetaClass() can unexpectedly cause other live entries to be removed
  • [GROOVY-3624] - implicit null call allowed for primitive type argument
  • [GROOVY-3627] - Compiler resolves this.foo() and super.foo() to statically imported method foo
  • [GROOVY-3633] - CLONE -Some GroovyClassLoader issues around recompile
  • [GROOVY-3640] - Some Users report seeing no results in AST Browser
  • [GROOVY-3645] - Running invalid Groovy program produces IncompatibleClassChangeError
  • [GROOVY-3647] - Vetoable and Bindable properties cause rendering bug when PropertyVetoException is raised
  • [GROOVY-3658] - function call in assigning default method parameter throws: Expecting to find object/array on stack
  • [GROOVY-3659] - Synchronization isn't done correctly for groovy.sl.Sql
  • [GROOVY-3664] - this.class fails to compile in a static context
  • [GROOVY-3667] - Stub compilation cannot handle spaces in method names
  • [GROOVY-3668] - Groovy compiler on Google App Engine thinks it is facing Java 1.4 (and therefore annotations don't work)
  • [GROOVY-3669] - Can't use several times the same JSR-223 ScriptContext for differents groovy script
  • [GROOVY-3672] - Stack trace doesn't point to source of error in DELEGATE_ONLY assignment case
  • [GROOVY-3677] - SQL documentation: executeInsert Javadoc error
  • [GROOVY-3678] - SQL documentation: executeInsert result Javadoc error
  • [GROOVY-3679] - ClassCastException writing entry to map via [] when key matches private field name
  • [GROOVY-3685] - Printing script causes the editor font to change
  • [GROOVY-3687] - TimeCategory 10.minutes.ago zeros out the time
  • [GROOVY-3693] - static init block in enum fails in 1-7-beta1
  • [GROOVY-3698] - GANT_HOME ending in a slash causes ClassNotFoundException
  • [GROOVY-3702] - Groovlet: depending groovy files are not recompiled
  • [GROOVY-3705] - Sql rows() methods access ResultSet after Connection closed
  • [GROOVY-3709] - javadoc of toMapString
  • [GROOVY-3711] - NPE when using JSR223 implementation under some conditions
  • [GROOVY-3713] - @Immutable should not override toString() if provided in source
  • [GROOVY-3715] - Unnecessary mandatory dependencies in groovy-all POM
  • [GROOVY-3716] - groovyc doesn't catch wrong return type in overriding method
  • [GROOVY-3718] - Regular-Expression-Evaluates-Null-As-True
  • [GROOVY-3719] - Script thinks it cannot be run
  • [GROOVY-3720] - MockFor and StubFor call unsupported method in ProxyGenerator for creation of instances of Abstract classes
  • [GROOVY-3721] - Strange behavior for properties that differ only in their capitalization
  • [GROOVY-3723] - EMC weirdness: adding properties and setProperty/getProperty in common
  • [GROOVY-3726] - Compiler incorrectly generating bridge methods
  • [GROOVY-3727] - Nested top-level class causes problems
  • [GROOVY-3728] - Compiler doesn't enforce that annotations are only applied to program elements they are intended for
  • [GROOVY-3729] - ~/.groovy/grapeConfig.xml file with only comment causes bug report
  • [GROOVY-3731] - Faulty generic declaration accepted but generates illegal bytecode
  • [GROOVY-3732] - Groovyc throws exception in code using ASTTransformations
  • [GROOVY-3735] - AstBuilder fromSpec creates extra generics info in some cases
  • [GROOVY-3749] - Cannot have a script with a main method as the starting point
  • [GROOVY-3750] - groovydoc doesn't handle leading asterisks in descriptions within project-info.groovy correctly
  • [GROOVY-3761] - Nested tags in nested javac tag of a groovc tag in Ant file is ignored
  • [GROOVY-3762] - Use of generics causes "The class p.A refers to the class p.A and uses 1 parameters, but the referred class takes no parameters"
  • [GROOVY-3763] - CLONE -Using the Ant task with multiple targets fails
  • [GROOVY-3768] - Groovy compiler allows local variables to be marked static
  • [GROOVY-3770] - Curried closure does not refer get/setResolveStrategy or getDelegate to parent
  • [GROOVY-3776] - Parser accepts invalid List literal
  • [GROOVY-3777] - Compiler behaviour different between script and compilation; line numbers missing in error message
  • [GROOVY-3784] - @Delegate breaks use of Generics
  • [GROOVY-3789] - switch should be expression like if
  • [GROOVY-3794] - Joint compiler fails with generics
  • [GROOVY-3796] - Process.waitForOrKill doesn't wait after killing; leading to a race condition
  • [GROOVY-3798] - Incorrect generated bytecode (duplicate field and method) on service with multiple methods returning array of same type
  • [GROOVY-3799] - Bug in passing in Var Args with Inheriters of Abstract classes
  • [GROOVY-3801] - Can't run compiled groovy class unless main method is defined Java-style
  • [GROOVY-3803] - NullObject is ignored by EMC
  • [GROOVY-3806] - Sql.java contains assertion which is always false
  • [GROOVY-3807] - Sql.expand not working in Sql.eachRow(GString sql, Closure metaClosure, Closure rowClosure)
  • [GROOVY-3808] - Sql.Dataset: No logging implemented
  • [GROOVY-3809] - Sql.Dataset: Values are converted to string causing errors when inserting dates
  • [GROOVY-3815] - public GroovyCodeSource(String script, String name, String codeBase) cripples script code with some UTF-8 characters (e.g. Japanese)
  • [GROOVY-3817] - try {} block followed by list notation does not work, needs something else in between
  • [GROOVY-3818] - grep or findAll results in ClassCastException (Comparaple) on TreeSet, TreeMap with custom comparator
  • [GROOVY-3827] - One compile error reported twice
  • [GROOVY-3830] - java.lang.IncompatibleClassChangeError thrown with Interface containing variable
  • [GROOVY-3831] - Expecting to find object/array on stack
  • [GROOVY-3833] - AST Browser doesn't use same classloader as groovyConsole. loaded JARs aren't found in AST Browser
  • [GROOVY-3834] - methodMissing is called twice instead of once
  • [GROOVY-3843] - API doc of groovy.servlet.TemplateServlet, Logging and extra-output option 'generate.by' is 'generated.by'.
  • [GROOVY-3844] - ASTBrowser does not show the free-standing methods of script as it shows the statements
  • [GROOVY-3847] - Weird compiler error when using assert incorrectly
  • [GROOVY-3850] - groovyc should not generate method stub if method name is invalid in Java
  • [GROOVY-3851] - @Grapes does not work (at least not in Groovy Console)
  • [GROOVY-3852] - groovyc allows multiple annotations of the same type on the same element
  • [GROOVY-3853] - Changes to @Grab parameters not detected in Groovy Console
  • [GROOVY-3857] - Newline in interfaces declaration with generics is not fully supported.
  • [GROOVY-3861] - AST transforms of spock do not take effect when the library is loaded using @Grab
  • [GROOVY-3863] - this.class fails in static methods that return void
  • [GROOVY-3865] - GroovyConsole not correctly remembering fullStackTraces flag
  • [GROOVY-3868] - "as" and "asType()" produce different results when converting Strings to primitive types
  • [GROOVY-3873] - adding methods to metaclass of interface not working
  • [GROOVY-3874] - Improve the caching logic in GroovyClassLoader
  • [GROOVY-3875] - CurriedClosure does not clone the parent closure
  • [GROOVY-3876] - as Integer doesn't work with GStringImpl
  • [GROOVY-3877] - problem trying to extend an abstract groovy class with a java class
  • [GROOVY-3878] - Can't call Java varargs method when it's mixed in to toplevel
  • [GROOVY-3882] - "final" not working as expected
  • [GROOVY-3886] - no sutb generation for inner classes
  • [GROOVY-3888] - GroovyServlets does not find groovlets in web application core under tomcat6
  • [GROOVY-3893] - NPE in GroovyScriptEngine.getResourceConnection(String)
  • [GROOVY-3894] - NumberFormatException if value is too big
  • [GROOVY-3895] - Joint compiler doesn't like classes that contain methods with primitive types for names
  • [GROOVY-3904] - groovyc hangs if a type is declared to extend itself
  • [GROOVY-3911] - intended behaviour change in 1.7rc1? can no longer set final variable in static initializer
  • [GROOVY-3920] - GroovyConsole: Empty dialogbox remains after script is executed
  • [GROOVY-3925] - Multiple GrabResolvers with Grab don't seem to work, and GrabResolve can't be applied to imports
  • [GROOVY-3927] - Switch's default case doesn't return the value as the non-default cases do
  • [GROOVY-3930] - groovyc does not allow multiple annotations of the same type even if Retention Policy is SOURCE
  • [GROOVY-4804] - Command line arguments containing * (asterisk) not passed correctly

Improvement

  • [GROOVY-1594] - Bundle JSR 223 Support in Groovy
  • [GROOVY-2283] - Add ability to dynamically modify classes blocked by StackTraceUtils during a sanitize operation.
  • [GROOVY-2414] - Extend XmlParser and Node to allow subclassing, permitting additional capabilities to reuse basic functionality
  • [GROOVY-2429] - Allow subclasses of XmlParser to customize creation of new Nodes
  • [GROOVY-2547] - Parent is still set in Node after removing it from the tree
  • [GROOVY-2570] - Support the multiple namespaces with NamespaceBuilderSupport
  • [GROOVY-2602] - TimeDuration should override toString
  • [GROOVY-2613] - add 'transform to platform newline' function to the GDK String API
  • [GROOVY-2833] - Improve GDK Reference File.eachLine and File.eachFile
  • [GROOVY-2841] - Upgrade ASM to 3.1
  • [GROOVY-2853] - Unclear error message for syntax error when using generics and forget bracket
  • [GROOVY-2855] - Stackoverflow in compiler if bad source code has class implementing itself
  • [GROOVY-2880] - Enhance ObjectGraphBuilder to support additional plural logic
  • [GROOVY-2904] - [ [a:1, b:2, c:3] ].flatten() -> [ 1, 2, 3 ], but should be [ [a:1, b:2, c:3] ]
  • [GROOVY-2995] - GString: document or coerce
  • [GROOVY-3071] - include example of observing and editing compilation phase during class loading
  • [GROOVY-3086] - Class level TestNG Test annotation on a groovy class does not work as expected
  • [GROOVY-3091] - Allow setting String based strategies on ObjectGraphBuilder[IdentityResolver|ReferenceResolver]
  • [GROOVY-3092] - allow combinations() to work on Collections not just Lists
  • [GROOVY-3094] - ObjectGraphBuilder: allow references to be resolved lazily
  • [GROOVY-3112] - Occasional "Access is denied" message with <groovyc>
  • [GROOVY-3118] - Better Cobertura Support
  • [GROOVY-3132] - Groovydoc doesn't support multiple locations in sourcepath
  • [GROOVY-3148] - Add javabean property and user generated setter support to @Bindable AST transformation.
  • [GROOVY-3172] - Add setter for field MethodNode.name
  • [GROOVY-3180] - @since Javadoc support for Groovy JDK is missing
  • [GROOVY-3185] - Provide clickable stacktrace and error messages in the Swing console
  • [GROOVY-3192] - Improvement to OSGi manifest
  • [GROOVY-3202] - Change Default Resolve Strategy Used For .with Method
  • [GROOVY-3206] - Added @since Tag to DefaultGroovyMethods.groovy and DefaultGroovyStaticMethods.groovy
  • [GROOVY-3210] - When list is indexed with a list, make semantics of r-value (getAt()) and l-value (putAt()) consistent
  • [GROOVY-3221] - Open up AntrlParserPlugin for extension
  • [GROOVY-3241] - Ivy should be declarer as optionnal dependency in groovy-all
  • [GROOVY-3244] - Support setting clientProperties with map syntax
  • [GROOVY-3249] - Groovy Examples should include an OSGi example
  • [GROOVY-3251] - Make Groovy-JDKs HTML 4.01 valid
  • [GROOVY-3265] - XmlNodePrinter outputs too much whitespace
  • [GROOVY-3279] - Remove ANT dependency on GroovyDocTool
  • [GROOVY-3290] - ProxyMetaClass.use method should return the result of the closure call
  • [GROOVY-3291] - Allow File.append and File.leftShift to handle binary data.
  • [GROOVY-3294] - Improved class loading for AST transformations
  • [GROOVY-3300] - Disallow try statements without catch or finally block
  • [GROOVY-3320] - SQL Column Aliases are ignored by groovy.sql with MySQL
  • [GROOVY-3324] - Share "reflection based ClassNodes" that wrap the same java.lang.Class
  • [GROOVY-3337] - ObjectGraphBuilder should support multiple associations for the same class
  • [GROOVY-3344] - Allow config file to overide defaults for groovy console font size and console height and width
  • [GROOVY-3369] - Better error message for Grab parameter errors
  • [GROOVY-3381] - null.clone() should throw NPE instead of CloneNotSupportedException
  • [GROOVY-3390] - Add configuration options to grape for http proxy settings
  • [GROOVY-3420] - Commons CLI 1.2 is released
  • [GROOVY-3431] - New setters for Statement subclasses
  • [GROOVY-3435] - Parameterize collection types in AST classes
  • [GROOVY-3441] - Should upgrade Groovy's ASM dependency to ASM 3
  • [GROOVY-3445] - Provide better error message when an annotation member is set twice
  • [GROOVY-3454] - Compiler should enforce that annotation value w/o default is provided
  • [GROOVY-3477] - Add setVariables method to GroovyServlet for easy extending of binded vars in custom classes
  • [GROOVY-3489] - Error message when leaving off round brackets and calling a method with a list literal could be improved
  • [GROOVY-3494] - @Immutable gives slightly vague error message if used on a class that cannot be made immutable
  • [GROOVY-3505] - Doc (of any kind) missing for XmlTemplateEngine
  • [GROOVY-3507] - Class comment nominated for the most useless comment of the year
  • [GROOVY-3533] - GroovyConsole AST Viewer does not display the accessedVariable property of Variable nodes
  • [GROOVY-3534] - GroovyConsole AST Viewer does not display NamedArgumentListExpression nodes
  • [GROOVY-3535] - GroovyConsole AST Viewer does not display Parameter type fields of MethodNode entries
  • [GROOVY-3555] - It would be good if @Delegate didn't delegate @Deprecated methods
  • [GROOVY-3561] - Documentation for the sort method in Collection class is misleading
  • [GROOVY-3569] - return value of firstRow() if empty
  • [GROOVY-3572] - Align SwingBuilder.doOutside() with SwingBuilder.edt()
  • [GROOVY-3586] - @Immutable should set the class to final if not already set
  • [GROOVY-3593] - Groovy Support for annotations on package declarations and imports
  • [GROOVY-3601] - Provide examples of global and local AST Transformations in the example package
  • [GROOVY-3614] - let the groovy.servlet.TemplateServlet use system property groovy.source.encoding as the source encoding
  • [GROOVY-3642] - Add synthetic binding support for JSpinner.value
  • [GROOVY-3650] - Gradle supports a more compact specification of maven/ivy style dependencies - it would be nice for @Grab to support this too
  • [GROOVY-3665] - Allow subclasses of groovy.sql.Sql to get ResultSet
  • [GROOVY-3688] - Move TimeCategory to a public package
  • [GROOVY-3691] - sql.withTransaction needs to save/restore "autoCommit "
  • [GROOVY-3694] - Consistent parameter names for DGM regex methods
  • [GROOVY-3706] - Tiny improvement to groovy.sql.Sql eachRows()
  • [GROOVY-3730] - Provide more control for @Grapes to exclude transitives or adjust classloader
  • [GROOVY-3753] - Expose the antXmlContext in the AntBuilder
  • [GROOVY-3765] - Add line numbers to source window of groovyConsole
  • [GROOVY-3778] - Round out eachRows() and rows() variants taking metaDataClosure.
  • [GROOVY-3786] - Multiple MarkupBuilder Issues
  • [GROOVY-3813] - MarkupBuilder alignment of special mkp commands compared with StreamingMarkupBuilder
  • [GROOVY-3816] - Should be possible to declare a class in a script and use it in another script with JSR223
  • [GROOVY-3838] - AST Browser should have more descriptive tree node labels for common node types
  • [GROOVY-3839] - AST Transforms: @GroovyASTTransformationClass annotation should allow parameters of type Class[] not just String[]
  • [GROOVY-3840] - AST Browser - EmptyStatement nodes do not render in AST Browser, visitEmptyStatement missing from GroovyCodeVisitor
  • [GROOVY-3842] - AST Browser - Browser should have option to show script, show class, or show both (performance improvement)
  • [GROOVY-3849] - Unix scripts should resolve links before trying to include startGroovy
  • [GROOVY-3856] - Add Reader support to GroovyShell and GroovyCodeSOurce
  • [GROOVY-3858] - Deprecate groovy.util.GroovyLog
  • [GROOVY-3859] - Deprecate groovy.ui.InteractiveShell
  • [GROOVY-3860] - Groovydoc throws NullPointerException when link tag missing packages attribute
  • [GROOVY-3862] - Add iteration to sql ResultSetMetaData so that it can be used more groovily
  • [GROOVY-3866] - GroovyConsole should have a setting which auto clears the output whenever the script is run
  • [GROOVY-3872] - GroovyConsole should support a mode where the output is captured in a separate window
  • [GROOVY-3884] - InvokerHelper.getVersion() should also work on Google App Engine
  • [GROOVY-3890] - ObjectGraphBuilder: add a general purpose bean factory
  • [GROOVY-3926] - There should be a DGM.subsequences method
  • [GROOVY-3928] - There should be a DGM.permutations() method for Collection
  • [GROOVY-982] - provide a general isTrue() analogous to isCase()

New Feature

  • [GROOVY-1193] - new convenience methods in DOMCategory: InputStream.parse; Reader.parse; Node.xpath
  • [GROOVY-1523] - Prototype based OO with Groovy
  • [GROOVY-1605] - Have a delete() method in File that deletes all subdirectories and contained files
  • [GROOVY-2335] - StAX builder
  • [GROOVY-2703] - Add putEach method to Map
  • [GROOVY-2733] - Generify collections' related methods in GDK
  • [GROOVY-3080] - implementation for inner classes in Groovy
  • [GROOVY-3106] - Provide a split(closure) DGM method on collections
  • [GROOVY-3138] - Add ability to hide script recopy output in Swing console
  • [GROOVY-3158] - Include transaction closure in standard api
  • [GROOVY-3188] - Groovy should provide way to turn off turning package scoped fields into properties
  • [GROOVY-3230] - Integrate JmxBuilder into Groovy
  • [GROOVY-3246] - There should be a DGM.normalize(String) method which acts like readLines().join('\n')
  • [GROOVY-3425] - Power Assertions
  • [GROOVY-3432] - Groovy Console needs option to show AST of current script
  • [GROOVY-3443] - Patch to enhance String class with a find method that takes regular expressions
  • [GROOVY-3452] - Spellchecking
  • [GROOVY-3458] - SwingBuilder: add noparent node
  • [GROOVY-3459] - SwingBuilder: add a method to handle key related input actions
  • [GROOVY-3469] - Add include mechanism to Groovlets and GSP's
  • [GROOVY-3481] - Groovy Support for annotations on local variable declarations
  • [GROOVY-3608] - Introduce AST Builder to easily create AST from code and strings
  • [GROOVY-3619] - Enable JComponent.size to be bindable
  • [GROOVY-3641] - Added new rounding methods to Float and Double that take a precision being the number of decimal places to round to
  • [GROOVY-3652] - Enhance Swing classes and models with additional methods
  • [GROOVY-3671] - "grape resolve -ivy (... ... ...)+" could generate ivy dependencies
  • [GROOVY-3686] - Add line numbers to the groovy console (patch supplied)
  • [GROOVY-3725] - Provide a mechanism for defining system properties within groovy-starter.conf
  • [GROOVY-3804] - Ability to customize Groovy Truth
  • [GROOVY-3805] - Boolean coercion for closures
  • [GROOVY-3897] - Add new Grape Ivy resolvers at runtime

Sub-task

  • [GROOVY-1298] - [GroovyScriptEngine] Runtime exception in custom ResourceConnector causes misleading error message
  • [GROOVY-1734] - Performance of GroovyScriptEngine needs improvement
  • [GROOVY-1783] - GroovyScriptEngine can cause Stack Overflow
  • [GROOVY-2065] - GroovyScriptEngine loadScriptByName have a poor performance in Network drives
  • [GROOVY-2197] - GroovyScriptEngine is not able to read from directory parameters
  • [GROOVY-2443] - Enum does not support instance (value) specific methods
  • [GROOVY-2588] - CLONE -Class reloading does not work with multi-level dependencies
  • [GROOVY-2674] - GroovyScriptEngine does not properly handle dependencies
  • [GROOVY-2751] - let GroovyScriptEngine use a CompilationPhase to track depending classes
  • [GROOVY-2753] - GroovyScriptEngine doesn't not update dependent classes in cache, only the root class
  • [GROOVY-2762] - Groovydoc support for fields and properties
  • [GROOVY-2909] - Groovydoc does not take inheritance into consideration.
  • [GROOVY-2978] - GroovyDoc misses some comments on classes and methods
  • [GROOVY-3110] - Inner enums not supported
  • [GROOVY-3255] - ClassNode:306
  • [GROOVY-3261] - Class comments in package summary
  • [GROOVY-3313] - Overview page formatting
  • [GROOVY-3357] - GroovyScriptEngine fails to load mutually dependant classes
  • [GROOVY-69] - support inner classes (or at least nested classes)
  • [GROOVY-917] - Cannot instantiate Java inner class

Wish

  • [GROOVY-2655] - Add an option for not fetching dependencies automatically using Maven when building Groovy
  • [GROOVY-3295] - Make Closure a java.util.concurrent.Callable