Changelog for Groovy 1.8.0

Bug

  • [GROOVY-1034] - running groovy.bat does not return exit status on windows
  • [GROOVY-1328] - cleanup strategy of choosing the class to execute when a file contains multiple classes
  • [GROOVY-1525] - "groovy -help" doesn't mention -cp option (also groovysh, groovyconsole etc.)
  • [GROOVY-1769] - parse of assert fails when newline between 'test' and 'message'
  • [GROOVY-2037] - Can't use Java 6 classpath wildcards
  • [GROOVY-2177] - Groovysh 'history recall' seems to be picking the wrong entry (off by 1)
  • [GROOVY-2516] - ExpandoMetaClass.class.metaClass creates StackOverflow
  • [GROOVY-2717] - Groovyc ignores includeAntRuntime when not forked.
  • [GROOVY-2811] - GroovyClassLoader.isSourceNewer() fails when url has spaces
  • [GROOVY-2914] - LoadConfiguration fails to load *.jar
  • [GROOVY-2959] - Deprecations warnings issues for Ant 1.7.0 -> 1.7.1 upgrade
  • [GROOVY-2991] - It looks like there's no way to escape $ character in the regexp string
  • [GROOVY-3047] - enum definition does not allow trailing comma
  • [GROOVY-3064] - ant task setContextClassloader
  • [GROOVY-3186] - ConfigSlurper only allows a single block for any given name
  • [GROOVY-3194] - increment/decrement operations must respect the variable type
  • [GROOVY-3384] - XML NodeList.add(index, Node) does not work as expected
  • [GROOVY-3398] - Shift-Backspace does not delete character before caret
  • [GROOVY-3463] - Spring/CGLIB proxies throw exception "object is not an instance of declaring class"
  • [GROOVY-3466] - MetaClassCreationHandle.create() should not be final
  • [GROOVY-3492] - Commandline proccessor seems to modifiy script path
  • [GROOVY-3496] - Slashy Strings may not terminate with a backslash
  • [GROOVY-3565] - package-info.java - groovydoc treats it wrong
  • [GROOVY-3570] - Causes application to crash due to too many files being open
  • [GROOVY-3613] - Need to supply hand-crafted constructor for enum having >1 field
  • [GROOVY-3657] - Category annotation results in Groovy Builder error
  • [GROOVY-3681] - AntBuilder calls maybeConfigure() on Task too early
  • [GROOVY-3684] - Caret is not visible in code panel after opening a file
  • [GROOVY-3712] - @Delegate produces invalid class file
  • [GROOVY-3736] - GroovyDoc processes first paragraph correctly but not the rest of overview.html
  • [GROOVY-3737] - groovydoc and other groovy bugs
  • [GROOVY-3738] - groovydoc doesn't handle @ directives in summary sentences.
  • [GROOVY-3739] - groovydoc doesn't handle {@link xxx} correctly.
  • [GROOVY-3740] - groovydoc doesn't handle # correctly
  • [GROOVY-3741] - There is no way to specify a style sheet (CSS file) to groovydoc.
  • [GROOVY-3745] - groovydoc doesn't handle @link's correctly in project-info.groovy
  • [GROOVY-3748] - Web site Groovy Doc has two flavors and problem with shown methods for GroovyShell
  • [GROOVY-3773] - GroovyDoc doesn't handle default parameters correctly.
  • [GROOVY-3783] - Need groovydoc command
  • [GROOVY-3785] - groovydoc doesn't handle enum comments correctly.
  • [GROOVY-3832] - groovy.sql.Sql.close should empty statement cache
  • [GROOVY-3841] - AST Browser - Generalize AST Browser so that it can produce TreeNodes for the UI or TextNodes for a file based tool
  • [GROOVY-3854] - "Groovy executing" dialog comes/stays forever although no script should be running
  • [GROOVY-3871] - null check for propertyMissingGet in MetaClassImpl.checkIfStdMethod considered harmful
  • [GROOVY-3915] - Documentation: Invalid link, bad HTML in RootLoader doc
  • [GROOVY-3920] - GroovyConsole: Empty dialogbox remains after script is executed
  • [GROOVY-3933] - XmlTemplateEngine does not handle quotes in attribute values
  • [GROOVY-3934] - GroovyCodeSource(URL) is not setting scriptText
  • [GROOVY-3945] - Statically imported closure field is not resolved
  • [GROOVY-3947] - No stack trace printed in the Groovy console
  • [GROOVY-3954] - GroovyCodeSource:159 may hide exception
  • [GROOVY-3960] - DocGenerator not documented generified methods?
  • [GROOVY-3965] - Inconsistent numbering - deploying groovy artifacts to Maven repositories
  • [GROOVY-3966] - GroovyConsole window loses focus when script is run
  • [GROOVY-3975] - No generic type information for closure parameters in generated closure class
  • [GROOVY-3977] - Auto-conversion inconsistency in BigDecimal treatment in method calls - Double vs Float
  • [GROOVY-3978] - Error in as Int[] conversion
  • [GROOVY-3979] - Enum inside a class
  • [GROOVY-3980] - GroovyScriptingEngine doesn't recognize changes in the source of checked class only when dependencies got changed
  • [GROOVY-3985] - error in instance initializer for Enum element, without special method
  • [GROOVY-3986] - can't omit toplevel parentheses in enum element method
  • [GROOVY-3987] - Cannot copy the text selected in output pane of GroovyConsole
  • [GROOVY-3989] - Groovy compiler allows overriding final methods but class loading fails with java.lang.VerifyError
  • [GROOVY-3991] - Exponantiation
  • [GROOVY-3993] - NPE when trying to access member of a static array from an inner static enum
  • [GROOVY-3994] - ClassCastException when trying to instantiat an EnumSet from an inner enum
  • [GROOVY-3996] - Enum static field initialization inconsistency
  • [GROOVY-4004] - stub generator creates wrong code for inner and nested classes
  • [GROOVY-4005] - Stub generator creates invalid Java code for anonymous inner classes
  • [GROOVY-4009] - Avoiding repeated resolve() calls in case of failure to resolve the type.
  • [GROOVY-4012] - java.lang.ArrayStoreException thrown on trying to execute a list
  • [GROOVY-4013] - GroovyScriptEngine.loadScriptByName returns anonymous inner classes on second invocation/reload
  • [GROOVY-4015] - GStrings are not coerced to Strings in super constructor call
  • [GROOVY-4025] - Groovy interfaces allow methods with full body?
  • [GROOVY-4028] - Inner classes - Constructor calls with named arguments don't get implicit this reference passed as 1st argument
  • [GROOVY-4029] - putAt and put behave different on Maps
  • [GROOVY-4035] - Super method calls from anonymous classes sometimes fail
  • [GROOVY-4038] - Closure meta class respondsTo(closure, "doCall") does not work
  • [GROOVY-4040] - DGM#flatten(Collection, Closure) isn't using closure properly
  • [GROOVY-4043] - Error in resolving inner class
  • [GROOVY-4046] - 1 == new Object() throws ClassCastException
  • [GROOVY-4048] - waitForProcessOutput should also waitFor internally
  • [GROOVY-4049] - 1.7.x's faster DGM loading system causes issues on Google App Engine
  • [GROOVY-4058] - Unexpected compilation error with MapEntryExpression usage - groovy grammar issue?
  • [GROOVY-4061] - Error trying to configure GroovyServlet to point to single groovy file for all URLs
  • [GROOVY-4066] - Groovy clibuilder doesn't take the parameter when the longOpt name ends with character "s"
  • [GROOVY-4069] - Custom constructors added via metaclass are sometimes not cleaned up
  • [GROOVY-4070] - Wrong value returned for "Attribute.name()" when iterating over GPath Attributes
  • [GROOVY-4071] - IndexOutOfBoundsException for labeled assertion statement
  • [GROOVY-4075] - shouldFailWithCause no longer works for unchecked exceptions
  • [GROOVY-4078] - Number.step incorrectly believes there is an infinite loop
  • [GROOVY-4079] - @Grab fails with ClassCastException
  • [GROOVY-4080] - Invalid class generated for an annotation when @Grab is used with it.
  • [GROOVY-4081] - Compiler should not allow enum constructor calls from outside the enum
  • [GROOVY-4098] - setter and getter destroy meta properties
  • [GROOVY-4099] - @Immutable annotation does not allow untyped static fields
  • [GROOVY-4100] - clearTime() fails for times in the afternoon
  • [GROOVY-4104] - MethodClosure for a protected method in a super class not working properly
  • [GROOVY-4106] - ExpandoMetaClassCreationHandle does infinite recursion for ExpandoMetaClass
  • [GROOVY-4107] - ResolveVisitor falsely resolves an import against itself
  • [GROOVY-4108] - Possible NPE in Groovy Ant task
  • [GROOVY-4116] - Call to an interface method results in IllegalAccessError when not implemented as "public"
  • [GROOVY-4117] - org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl#registerMethods should not call System.exit
  • [GROOVY-4118] - JavaStubGenerator doesn't generate annotations available in Groovy code
  • [GROOVY-4119] - Implicit construtor call fails with NoSuchMethodError when an inner class extends another
  • [GROOVY-4120] - Non static inner class usage fails with MethodSelectionException
  • [GROOVY-4121] - Compiler fails to do assignment-to-final-fields checks on fields made final by @Immutable (was: @Immutable does not make fields immutable)
  • [GROOVY-4129] - Implicit 'this' reference not being passed if inner class instance is created in outer class instance initializer
  • [GROOVY-4130] - Using categories results in multiple thread locals being retained that Tomcat has to forcibly clear
  • [GROOVY-4131] - Compiler allows 2 main methods in a script
  • [GROOVY-4133] - @Delegate does not handle native methods correctly
  • [GROOVY-4134] - Closure default values cannot be static constants
  • [GROOVY-4137] - Default constructor added by groovy does not have source information set on it
  • [GROOVY-4138] - Groovy JDK File.eachFileMatch insufficient documentation to use the method.
  • [GROOVY-4139] - Assigning with empty String as hash key (i.e. a['']=t) yields StringIndexOutOfBoundsException
  • [GROOVY-4140] - Groovy JDK documentation has mismatch between signatures and explanation
  • [GROOVY-4145] - Statically imported fields & properties
  • [GROOVY-4147] - Timecategory strange format (too many '-' signs) when printing 'negative' date
  • [GROOVY-4151] - println "$this" fails in inner class, but println ''+this works
  • [GROOVY-4158] - cannot mix rcurry and ncurry together
  • [GROOVY-4159] - hang on exception in synchronized block
  • [GROOVY-4161] - Source locations for added default constructors are incorrect
  • [GROOVY-4163] - Groovyc is unable to compile a class which implements interface and uses @Delegate annotation
  • [GROOVY-4168] - MapWithDefault doesn't have correct equals functionality
  • [GROOVY-4169] - Compile error on annotations for closure parameters
  • [GROOVY-4170] - Currying private methods
  • [GROOVY-4177] - Groovy categories cause tomcat memory leak and prevent tomcat shutting down
  • [GROOVY-4180] - groovydoc appears to be broken with java.util.NoSuchElementException
  • [GROOVY-4182] - very bad performance in GroovyCategorySupport because of static AtomicInteger use
  • [GROOVY-4187] - GDK should make the File method setText(String text, String charset) an alias for write(String text, String charset)
  • [GROOVY-4188] - NoSuchFieldError when defining a field named "metaClass"
  • [GROOVY-4190] - Static generic method invocation with explicitely stated type doesn't compile
  • [GROOVY-4191] - java.lang.ArrayStoreException on attempt to assign number to an element of a string array for a second time
  • [GROOVY-4192] - Class ReleaseInfo isn't thread-safe
  • [GROOVY-4193] - ImportNode.getClassName() throws NPE when type is null
  • [GROOVY-4196] - Source locations not correct for some return and block statements created in ReturnAdder class
  • [GROOVY-4201] - @Immutable cannot handle List
  • [GROOVY-4202] - successive metaclass modification for class then instance fails.
  • [GROOVY-4206] - Inconsistent handling of boolean properties
  • [GROOVY-4215] - exception trying to define method in closure
  • [GROOVY-4219] - Error during class generation for simple java/groovy program
  • [GROOVY-4222] - @Lazy has incorrect behavior for static fields
  • [GROOVY-4225] - Wrong generation of import statements in stubs
  • [GROOVY-4227] - Grails 1.3.1 groovysh render incorrect char encoding in prompt and messages
  • [GROOVY-4235] - Closure returned from static method cannot access class properties through "this"
  • [GROOVY-4237] - LocalVariableTable index attributes aren't consecutive
  • [GROOVY-4241] - Problems with the 'as' operator
  • [GROOVY-4243] - Incorrect super class for script containing an anonymous inner class
  • [GROOVY-4244] - Properties cannot be set through a @Delegate
  • [GROOVY-4246] - Issue with incrementing array when using Random number generation
  • [GROOVY-4250] - Power assert doesn't pretty-print empty String
  • [GROOVY-4252] - Invalid code crashes the compiler
  • [GROOVY-4254] - Compiler wrongly compiles a ClosureListExpression that results in NoSuchMethodError at runtime
  • [GROOVY-4257] - Collection.unique() method might remove not duplicate items
  • [GROOVY-4259] - Groovyc Ant task hard-codes
  • [GROOVY-4265] - @Delegate's dealing with static methods seems incorrect
  • [GROOVY-4267] - Unable to import static for static inner classes
  • [GROOVY-4268] - Breaking change in enum syntax
  • [GROOVY-4272] - Constant integer and double expressions in AstBuilder.buildFromCode { } cause NoSuchFieldErrors at runtime
  • [GROOVY-4285] - XmlUtil.serialize doesn't seem to pick right method for GPathResult
  • [GROOVY-4286] - GroovyScriptEngine doesn't recompile updateted script
  • [GROOVY-4288] - GroovyScriptEngine can't refresh class from url other than file
  • [GROOVY-4293] - BUG! exception in phase 'parsing' in source unit 'Script1.groovy' null
  • [GROOVY-4295] - Joint compilation fails for interfaces with primitive fields
  • [GROOVY-4304] - OptimizerVisitor may run twice, corrupting constants
  • [GROOVY-4307] - Grapes doesn't handle properties correctly used in the organisation field of a POM.
  • [GROOVY-4309] - printf not bound to "out" in groovlet context as in print/println
  • [GROOVY-4312] - Empty primitive arrays evaluate to true
  • [GROOVY-4316] - Add test/coverage (for CLONE of Joint compilation fails for interfaces with primitive fields)
  • [GROOVY-4325] - Compiler does not mind multiple default cases for a switch statement
  • [GROOVY-4329] - Stub generator exhibits a synthetic method in the stubs it should not
  • [GROOVY-4330] - Groovy 1.7.4 wont build from source
  • [GROOVY-4334] - Method parameter names missing in compiled classes when using parameter in closure
  • [GROOVY-4336] - EMC DSL is broken for some methods on Closure
  • [GROOVY-4337] - Generated createCallSiteArray is too big for JVM
  • [GROOVY-4340] - Curry method fails when using it in a chain with IllegalArgumentException
  • [GROOVY-4341] - DefaultGroovyMethods#unique O(n²) performance
  • [GROOVY-4347] - DGM#consumeProcessOutput(Process, StringBuffer, StringBuffer) accepts only StringBuffers
  • [GROOVY-4348] - Cannot get a closure's resolve strategy with property syntax
  • [GROOVY-4363] - @Immutable class, failure when trying to define private static members
  • [GROOVY-4364] - DGM.eachLine() returns wrong result
  • [GROOVY-4376] - deprecated @groovy.lang.Immutable feature broken on current trunk (1.8-beta-2)
  • [GROOVY-4378] - Incorrect handling of unicode escape sequences when calculating source locations
  • [GROOVY-4380] - Round-tripping XML which contains a newline character reference in an attribute's value removes the character reference
  • [GROOVY-4385] - Response already committed on Google App Engine when serving blobs
  • [GROOVY-4386] - static import does not work in Groovy 1.7.4
  • [GROOVY-4391] - Groovy build fails test target using Java 1.7.0
  • [GROOVY-4392] - asymmetry of closure parameter type among String#replaceAll/String#eachMatch/Pattern#each
  • [GROOVY-4394] - JavaStubGenerator doesn't properly generate annotations with properties of array type
  • [GROOVY-4397] - @Delegate broken in Groovy 1.8.0-beta-2-SNAPSHOT
  • [GROOVY-4404] - Variable scope of BlockStatement getting lost inside ReturnAdder
  • [GROOVY-4405] - ResourceBundle in 1.7-beta-1
  • [GROOVY-4406] - Script extension set on groovyc does not flow down to the CompilerConfiguration
  • [GROOVY-4408] - Groovy truth of groovy.util.slurpersupport.NoChildren should be false
  • [GROOVY-4409] - Groovy snapshot source archives for 1.8 beta-1 and beta-2 are having everything packaged twice
  • [GROOVY-4410] - ClassFormatError extending generic interface that has a method with an Array argument returning the generic type
  • [GROOVY-4412] - FindBugs errors for new Integer() vs. Integer.valueOf() like calls
  • [GROOVY-4414] - unaryMinus fails for Short and Byte
  • [GROOVY-4416] - Accessing outer properties/methods from inner classes results in NPE
  • [GROOVY-4418] - Unqualified reference in subclass static method to superclass static fields fails to compile
  • [GROOVY-4422] - An Interface nested within a class fails to parse.
  • [GROOVY-4431] - Groovy Console binding's output-transform missing yields a stacktrace when context is cleared
  • [GROOVY-4434] - Java stub generator doesn't use FQN for annotation values
  • [GROOVY-4435] - Inconsistent handling of final fields
  • [GROOVY-4437] - Static import don't work in scripts in default packages
  • [GROOVY-4440] - Groovy Console looking for wrong LAF on Snow Leopard
  • [GROOVY-4441] - method File.eachFile is not returning full directory content
  • [GROOVY-4443] - null.asBoolean() should be false
  • [GROOVY-4444] - Constructor chaining in enums doesn't work
  • [GROOVY-4445] - ImmutableASTTransformation puts initialization of static fields into instance constructor
  • [GROOVY-4447] - A few issues in stubgenerator testing infrastructure
  • [GROOVY-4448] - SwingBuilder TitledBorder not recognizing justification attribute correctly
  • [GROOVY-4449] - Vararg parameter allowed in non-last position but fails at runtime
  • [GROOVY-4451] - Stub generation for annotation types doesn't work
  • [GROOVY-4453] - Duplicate methods added by stub generator in joint compilation when method parameters have default values.
  • [GROOVY-4455] - multiple assignment code makes Groovy AST Browser throw Exception
  • [GROOVY-4467] - Groovy JDK's java.util.Date page has double method definitions
  • [GROOVY-4469] - http://groovy.codehaus.org/gapi/ - empty/duplicate/missing Javadocs
  • [GROOVY-4470] - Stub generator cannot handle multi-line strings as annotation values
  • [GROOVY-4475] - Boolean seems to support toBoolean() but yields incorrect results
  • [GROOVY-4477] - Exceptions do not get unwrapped from InvokerInvocationException
  • [GROOVY-4480] - Parsing seems to have changed in 1.8
  • [GROOVY-4481] - MetaClassRegistry listener isn't triggered and iterator is not returning updated MCs
  • [GROOVY-4482] - Closure.memoize fails on Google App Engine
  • [GROOVY-4484] - changelist 20965 Broke AST Browser in Groovy Console
  • [GROOVY-4486] - No stacktrace or message for exceptions in the main constructor
  • [GROOVY-4492] - Bug in groovy.util.GroovyScriptEngine isSourceNewer() results in gratuitous recompilations and lost of static state in groovlets
  • [GROOVY-4497] - IllegalAccessError when accessing base class property with "super.propertyName"
  • [GROOVY-4500] - Issues with remote closures
  • [GROOVY-4504] - Groovy compilation results in warnings in generated code
  • [GROOVY-4505] - Rogue line number for method declarations confuses IDE debuggers
  • [GROOVY-4508] - Incorrect stub code generated for constructor with optional parameters
  • [GROOVY-4510] - NPE during "record" command with relative path file name
  • [GROOVY-4512] - Method invocation syntax does not work properly with ComposedClosures
  • [GROOVY-4514] - Groovydoc does not include all the implemented interfaces of a type
  • [GROOVY-4516] - @Delegate does not work with default method parameters
  • [GROOVY-4517] - Java stub generator does not set correct value for annotations that expect a Class as a value
  • [GROOVY-4521] - Inconsistency between CompilerConfiguration, groovy -c and groovysh ?
  • [GROOVY-4524] - Groovy AntBuilder reset InputHandler when use <groovy> task
  • [GROOVY-4526] - NullObject paradoxes
  • [GROOVY-4527] - Groovydoc does not include a super-type which is referenced in the source using a fully-qualified name
  • [GROOVY-4528] - Groovydoc does not work with java 5
  • [GROOVY-4534] - Thread.join appears to not work correctly in at least one special case
  • [GROOVY-4545] - Invalid closure name generated when containing method name has spaces
  • [GROOVY-4546] - Several bugs with @Category
  • [GROOVY-4547] - A few UI issues in AST Browser
  • [GROOVY-4548] - @Field cannot annotate a multiple assignment expression. throws a ClassCastException
  • [GROOVY-4549] - Source locations dropped inside of StaticImportVisitor
  • [GROOVY-4550] - Regression with @Immutable: @Immutable fields not recognised
  • [GROOVY-4551] - Method Closure.curry() returns raw type
  • [GROOVY-4555] - Wrong return subtypes of collectEntries{}
  • [GROOVY-4561] - VerifyError when debugging Groovy core tests
  • [GROOVY-4566] - AbstractASTTransformation should not reference ImmutableASTTransformation
  • [GROOVY-4567] - AST browser decompiled source is missing parens for StaticMethodCallExpressions
  • [GROOVY-4569] - AST Browser throws exception for enum classes
  • [GROOVY-4578] - static star ImportNode has invalid constructor?
  • [GROOVY-4580] - vmplugin throws NPE when trying to throw a GroovyBugException
  • [GROOVY-4584] - VerifyError with nonstatic category references in static methods
  • [GROOVY-4587] - VerifyError after int optimizations
  • [GROOVY-4599] - Exception java.lang.VerifyError "Expecting to find object/array on stack" when overriding a notyped method with a typed method
  • [GROOVY-4600] - (null as float) behaviour changed in 1.8
  • [GROOVY-4601] - Stub generator doesn't escape strings with mixed single and double quotes
  • [GROOVY-4604] - Stub generator doesn't escape double quotes in String annotation values
  • [GROOVY-4607] - Groovy doesn't correctly check for weaker access privileges when using inheritance
  • [GROOVY-4609] - Using log variable created with @Log or @Log4j causes compiler error if used in static method
  • [GROOVY-4614] - what does a static outer class declaration mean?
  • [GROOVY-4619] - problem compiling @Delegate to an interface that extends another interface
  • [GROOVY-4626] - Console launched from groovy-all-1.7.6.jar now has ivy dependancy
  • [GROOVY-4628] - typo in document comment of Immuable
  • [GROOVY-4630] - NPE in OptimizingStatementWriter
  • [GROOVY-4649] - static inner classes are not being compiled correctly
  • [GROOVY-4657] - Regression: Null element coerced to "null" String when containing List is coerced to String array
  • [GROOVY-4667] - for-loop type declaration does not work
  • [GROOVY-4669] - "anystring" as byte[] throws java.lang.NumberFormatException: For input string: "anystring"
  • [GROOVY-4691] - Grails 1.3.7 breaks bean-fields plugin
  • [GROOVY-4695] - anonymous classes InnerClassNode has -1 for line numbers
  • [GROOVY-4700] - @Field variable can't be referred from closure
  • [GROOVY-4704] - Error with null parameter in prepared statements with old DB2 driver
  • [GROOVY-4707] - Scripts' class nodes didn't have correct source positions
  • [GROOVY-4709] - @Interrupt AST transformations should not be applied on abstract methods
  • [GROOVY-4715] - StreamingMarkupBuilder can produce invalid xml
  • [GROOVY-4719] - Groovy build fails in tests - test RedundantCastInStubTest fails
  • [GROOVY-4720] - Method overriding with ExpandoMetaClass is partially broken
  • [GROOVY-4731] - sample code in javadoc of Map#spreadMap() don't works
  • [GROOVY-4734] - Object initializer not being called on object construction
  • [GROOVY-4741] - VerifyError: Expecting to find integer on stack
  • [GROOVY-4743] - Inner classes of inner classes can't find outer class method names.
  • [GROOVY-4746] - broken @link in MetaObjectProtocol.java's javadoc
  • [GROOVY-4747] - ClosureWriter incorrectly changes the accessedVariable field of a VariableExpression
  • [GROOVY-4748] - javadoc comment problems which breaks generated HTMLs
  • [GROOVY-4751] - Defensive copying doesn't work for @Immutable classes
  • [GROOVY-4753] - CliBuilder#expandArgumentFiles throws StringIndexOutOfBoundsException on empty arguments
  • [GROOVY-4756] - wrong usage of _$st in interfaces
  • [GROOVY-4765] - __$swapInit not quite doing what was expected
  • [GROOVY-4774] - Problem with extended command expressions
  • [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-4786] - @EqualsAndHashCode : excludes does not work correctly
  • [GROOVY-4795] - can't specify 'synchronize' parameter to ListenerList AST Transformation.
  • [GROOVY-4797] - VerifyError when using @ListenerList
  • [GROOVY-4821] - Multiple assignment triggers internal error during 'conversion' phase

Improvement

  • [GROOVY-1113] - support indexed properties for GroovyBeans
  • [GROOVY-1178] - Add a Utility Method for Converting GPathResults to XML
  • [GROOVY-1704] - GroovyScriptEngineListener
  • [GROOVY-1705] - stop running GroovyScriptEngine
  • [GROOVY-2214] - clearly state the implicit variables used with groovy command -p -n and -a options
  • [GROOVY-2701] - improve regex in Groovy
  • [GROOVY-2727] - improve CliBuilder/OptAccessor's long command line opts handling
  • [GROOVY-2806] - Performance of fibonacci function
  • [GROOVY-2898] - The count() in DefaultGroovyMethod should support counting by a Closure
  • [GROOVY-2945] - Binary counterpart to setText(File, String)
  • [GROOVY-2987] - Slow leftShift GDK methods
  • [GROOVY-3697] - Enhance consistency of regex/pattern DGM methods
  • [GROOVY-3811] - Groovydoc should recognise Javadoc tags and treat them specially in HTML output as Javadoc does
  • [GROOVY-3923] - update license text in file headers
  • [GROOVY-3935] - Update groovysh to use jansi for windows ANSI support
  • [GROOVY-3941] - Invalid method code length for many tokens in code
  • [GROOVY-3946] - Allow overriding the default Groovy class loader
  • [GROOVY-3959] - TestNG script runner masks root cause of exception
  • [GROOVY-3961] - Prepend '.groovy' in the filename of the save dialog & filter *.groovy
  • [GROOVY-3992] - Add a reverse method to Map
  • [GROOVY-3997] - TemplateServlet works directly with System.getProperty instead of init parameters
  • [GROOVY-3999] - StackOverflowError not recognizable as such in GroovyConsole
  • [GROOVY-4006] - Implicit this reference for inner classes should be handled automatically
  • [GROOVY-4014] - Provide more Feedback while downloading Grapes
  • [GROOVY-4019] - Enhance the named argument constructors related to @Immutable to throw MissingPropertyException
  • [GROOVY-4026] - MockFor and StubFor improvements
  • [GROOVY-4033] - Stateful metaclass mixins are completely undocumented
  • [GROOVY-4039] - Make the MissingMethodException show class duplication errors
  • [GROOVY-4041] - TRIVIAL doco issues for classes URL and File
  • [GROOVY-4045] - Comment the nature of the documentation for http://groovy.codehaus.org/(g)api/
  • [GROOVY-4047] - Cyclic inheritence check - scattered across multiple compilation phases
  • [GROOVY-4054] - Methods generated for enum classes not synthetic
  • [GROOVY-4059] - Groovyc: taking file.encoding property over from parent process when forked
  • [GROOVY-4073] - Add extra DOM manipulation methods to DOMCategory
  • [GROOVY-4074] - Add DGM#getAt(Iterator, int) method
  • [GROOVY-4103] - It would be useful for groovy.sql.Sql to support a map-based newInstance method
  • [GROOVY-4111] - The compiler can reject invalid code (constructor call on an abstract type) earlier than it does
  • [GROOVY-4115] - StreamingMarkupBuilder should provide an option for using double quotes around attributes
  • [GROOVY-4126] - @Immutable should support URI as one of the known immutable types
  • [GROOVY-4132] - Groovy should support 'as Interface' shorthand syntax on normal Objects not just Maps and Closures
  • [GROOVY-4152] - Groovy code using constants seems unsuitable for hotswap
  • [GROOVY-4183] - GroovyConsole should display a Groovy icon on the dock when running on Mac OSX
  • [GROOVY-4195] - DGM getAt method for Calendar
  • [GROOVY-4200] - GroovyConsole scrolls input area to top of the source file when the output area gains focus
  • [GROOVY-4203] - Groovyc Ant task can get a NPE when trying to set stubDir plus doesn't expose keepStubs flag
  • [GROOVY-4204] - BigDecimal division is currently implemented using pre Java 1.5 code
  • [GROOVY-4208] - @PackageScope should also work for methods and classes
  • [GROOVY-4212] - TransformTestHelper class misspelled, has no test case, and should accept String as input not just File
  • [GROOVY-4213] - add a local transform for logging
  • [GROOVY-4224] - Open up ObservableList and ObservableMap for extension
  • [GROOVY-4230] - Update deprecated Look&Feel seetings in SwingBuilder
  • [GROOVY-4233] - Provide last() and first() implementations on Object []
  • [GROOVY-4247] - New method: File.renameTo(String path)
  • [GROOVY-4253] - findResult object/collection/map enhancement patch
  • [GROOVY-4262] - <groovyc> does not provide an option to customize the target bytecode version used by ACG
  • [GROOVY-4271] - InputStream.eachByte in DGM to read IS using a byte buffer
  • [GROOVY-4273] - Provide better error message in case of misspelled enum constant
  • [GROOVY-4294] - Collection and Map functions
  • [GROOVY-4303] - Provide minus and intersect methods for maps
  • [GROOVY-4305] - Make groovy.lang.Reference implement Serializable
  • [GROOVY-4310] - Power asserts should use DefaultGroovyMethods.toString() instead of 'plain' toString()
  • [GROOVY-4311] - Make Closure a java.util.concurrent.Callable (re-addressed)
  • [GROOVY-4314] - Keyword "const" should be allowed as map key for literal maps/named params and property access
  • [GROOVY-4321] - Keywords "super" and "this" should be allowed as map key for literal maps/named params and property access
  • [GROOVY-4343] - @Log annotation should support Apache Commons Logging
  • [GROOVY-4344] - Assert a closure call should look like
  • [GROOVY-4345] - @Log annotation should support naming the logger
  • [GROOVY-4350] - @Log annotation should be extensible by users and other frameworks
  • [GROOVY-4351] - Improve Category Performance and Memory
  • [GROOVY-4361] - Further generification of type signatures in DGM
  • [GROOVY-4371] - Decouple core classes of ASTBrowser from Swing classes to make other views on the AST tree possible
  • [GROOVY-4393] - Add multiple file extensions support in compiler
  • [GROOVY-4399] - Command expressions using named arguments doesn't support newlines after colon
  • [GROOVY-4423] - Map should have an isCase method
  • [GROOVY-4424] - Groovy should provide a way to adjust the ivy message logging level
  • [GROOVY-4425] - GroovyConsole has a hard-coded output limit on the console; needs a way to configure it
  • [GROOVY-4452] - proposed GrabResolver shorthand
  • [GROOVY-4456] - DGM#collectEntries has a Collection variant but no Object[] variant
  • [GROOVY-4496] - Do not scroll output console when exception is thrown, let people see the message without having to scroll back
  • [GROOVY-4501] - String to Enum coercion
  • [GROOVY-4511] - asType for collections should use .addAll if no <init>(Collection) constructor is found
  • [GROOVY-4525] - Sql.newInstance map version assumes map values are strings
  • [GROOVY-4538] - AST Browser - Allowing changing the font size in the decompiled source view
  • [GROOVY-4541] - ast browser should save your selected compilerphase and restore it when the window opens.
  • [GROOVY-4552] - Closure.leftShift() and rightShift() and trampoline() return the raw type
  • [GROOVY-4553] - AnnotationConstantExpression.visit should include a call to super.visit
  • [GROOVY-4564] - AST Browser Tree should support font resizing
  • [GROOVY-4574] - consistency of the regex apis: replaceFirst with Closure
  • [GROOVY-4588] - Add start DGSM to Thread class
  • [GROOVY-4621] - CliBuilder should treat GString like Strings when specifying options
  • [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-4680] - Grape/Grab Documentation is incomplete
  • [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-4717] - implement a way for direct method calls
  • [GROOVY-4722] - Enhance GrapeIvy to support ext
  • [GROOVY-4724] - add support for overriding package-, doc- or class-templates in Groovydoc descendant classes
  • [GROOVY-4771] - add paging to eachRow and rows GString methods
  • [GROOVY-4772] - add javadocs for sql paging
  • [GROOVY-4775] - Support 'changing' attribute on @Grab annotation
  • [GROOVY-4779] - add syntax highlighting to the AST Browser decompiled source view
  • [GROOVY-4780] - AstBrowser - Add option to hide the tree view and just show the decompiled source
  • [GROOVY-4785] - Improve Closure javadoc for resolution strategy
  • [GROOVY-4788] - The clearTime() method added to java.*.Date should return the modified Date for a more fluent API
  • [GROOVY-972] - makeMarkupBuilder use Writers instead of PrintWriters to allow System independent line feeds, e.g. with StringWriter

New Feature

  • [GROOVY-1746] - Add default to Map
  • [GROOVY-1819] - primitif type and direct call methode
  • [GROOVY-2128] - Portable jar with groovy runtime
  • [GROOVY-2597] - Map or Property Sort
  • [GROOVY-2879] - Create @Identity annotation to autogenerate equals() / hashCode() / toString()
  • [GROOVY-3093] - Allow annotations to take closures as arguments
  • [GROOVY-3349] - Add stripMargin() to multi-line strings
  • [GROOVY-3391] - New AST transformation @InheritConstructors
  • [GROOVY-3649] - SQL named parameters in Sql.executeUpdate
  • [GROOVY-3846] - Grape command cannot remove and/or update a "grape"
  • [GROOVY-3938] - Stamp groovy classes with the version of groovy used to generate them.
  • [GROOVY-4062] - Add getBytes to InputStream, URL and File
  • [GROOVY-4124] - Groovy equality for Sets and Maps
  • [GROOVY-4144] - Closures should have rcurry and ncurry as well as curry
  • [GROOVY-4146] - Groovy's Sql classes could support batch operations by leveraging the java.sql.Statement.executeBatch() command.
  • [GROOVY-4148] - CliBuilder should support @argumentFile processing similar to what javadoc has
  • [GROOVY-4160] - Gradle build
  • [GROOVY-4174] - Support for String translation similar to unix 'tr' command
  • [GROOVY-4186] - Possible syntactic sugar for JSR-223
  • [GROOVY-4205] - Groovy should have a DGM#capitalize(String) method
  • [GROOVY-4207] - Groovy should have DGM#expand and DGM#unexpand methods for tab manipulation
  • [GROOVY-4221] - @Synchronized AST transform
  • [GROOVY-4228] - Groovy should have a mechanism to create class-level fields in Scripts
  • [GROOVY-4256] - Can groovyConsole provide an option to compile a script?
  • [GROOVY-4318] - Provide a mechanism for Global AST Transformations to be able to define a file extension for the Groovy sources they should be applied to
  • [GROOVY-4322] - Support for Closure composition
  • [GROOVY-4324] - Provide a stub generator testing infrastructure
  • [GROOVY-4377] - Add synthetic bindings to JList
  • [GROOVY-4384] - Implement GEP-3: extended command expressions
  • [GROOVY-4436] - Support (at least at the syntax level) for project Coin "Diamond" syntax
  • [GROOVY-4462] - Provide (full/partial?) semantic support for project Coin "Diamond" syntax
  • [GROOVY-4468] - Groovy Console's AST Browser should allow you to view a source code view of AST
  • [GROOVY-4474] - Enhanced SwingBuilder to add a columnModel into a table, added cellEditor support to tables and trees, implemented optional DefaultRenderer-behaviour for cellRenderers
  • [GROOVY-4479] - Closure Memoization
  • [GROOVY-4509] - ASTTransformation @ListenerList - Java-style listener support
  • [GROOVY-4518] - add support for @WithReadLock and @WithWriteLock declarative synchronization
  • [GROOVY-4522] - Closure Trampoline
  • [GROOVY-4530] - @ThreadInterrupt AST Transformation
  • [GROOVY-4536] - There are DGM#sort methods for Map but no min or max methods
  • [GROOVY-4539] - create @TimedInterrupt annotation to automatically timeout scripts after a certain amount of time
  • [GROOVY-4542] - @ConditionalInterrupt AST Transformation
  • [GROOVY-4560] - @Immutable should allow public static final constants to be defined
  • [GROOVY-4581] - allow the storage of meta data on ast nodes using a map
  • [GROOVY-4622] - add paging to groovy.Sql
  • [GROOVY-4644] - JSON support: provide a parser and a builder for JSON content

Sub-task

  • [GROOVY-2282] - ProxyMetaClass doesn't work as expected with StubFor/Mockfor
  • [GROOVY-3065] - Document MarkupBuilder and StreamingMarkupBuilder and StaxBuilder
  • [GROOVY-3262] - Support linking to other javadocs
  • [GROOVY-3267] - Support @see tag for GDK
  • [GROOVY-4175] - GroovyScriptEngine - loading non file based scripts does not work - isSourceNewer
  • [GROOVY-4234] - GroovyScriptEngine.loadScriptByName loads the wrong class when scripts contain class definitions
  • [GROOVY-4264] - Issure related to ordering of generated classes when a script has multiple classes
  • [GROOVY-4274] - improved int math
  • [GROOVY-4276] - allow direct method calls on "this" to private methods if the method call target is clearly selectable at compile time
  • [GROOVY-4401] - GEP-3: ability to use (extended) command expression on the RHS
  • [GROOVY-4402] - GEP-3: allow zero-args methods in the chain of calls
  • [GROOVY-4403] - GEP-3: disambiguate cases where minus something or [] or {} are used as the argument of extended command expressions

Task

Wish

  • [GROOVY-3374] - Add clearTime() to java.util.Date and/or java.util.Calendar
  • [GROOVY-3810] - remove deprecation exception from java.io.File.each and apply semantics from java.lang.Object.each and other iterator semantics
  • [GROOVY-3973] - GroovyClassLoader incompatible with older version(s)
  • [GROOVY-4153] - Statically imported properties
  • [GROOVY-4537] - New signature for String.replaceFirst( regex, closure )