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 )