Changelog for Groovy 1.6.0-beta-2
Bug
- [GROOVY-596] - StackOverflowError when instanciate BeanInfo
- [GROOVY-1649] - a keyword used as name of property should not require quotes
- [GROOVY-2135] - failed to reference an instance defined in enum class with the syntax like Planet.MERCURY
- [GROOVY-2208] - debug info not generated
- [GROOVY-2421] - edit command doesn't work on Mac
- [GROOVY-2535] - lost LineNumberTable in groovyc-produced bytecode
- [GROOVY-2784] - XmlNodePrinter namespace declarations are inserted at incorrect scope
- [GROOVY-2786] - ObservableMap doesn't fire Property Change Event upon removal
- [GROOVY-2787] - typing "x.class" in groovysh changes x.
- [GROOVY-2793] - NullPointerException when using SQL.rollback()/commit() when DataSource is being used
- [GROOVY-2803] - annotations definition in groovy
- [GROOVY-2804] - I/O example on documentation web site fails
- [GROOVY-2809] - Setting certain nested javac arguments in groovyc leads to an exception.
- [GROOVY-2810] - Namespaces lost by XmlNodePrinter in some cases
- [GROOVY-2814] - Groovy arithmetic errors
- [GROOVY-2816] - Invalid method code length
- [GROOVY-2817] - Off by one error on string indexing error reporting
- [GROOVY-2818] - Either support true stateful mixins or remove the current experimental implementation all together
- [GROOVY-2819] - Correct return type optimization that forces you to return java.lang.Number
- [GROOVY-2828] - Command line option -cp does not work: "Error: no argument for:c"
- [GROOVY-2829] - Groovy's class verification doesn't allow for covariant return types
- [GROOVY-2830] - false super field initialization leads to cast error
- [GROOVY-2837] - CLONE -Groovy objects trying to override final methods
- [GROOVY-2848] - Concatenating GStrings produces gaps for GSQL
- [GROOVY-2858] - String plus ignored after new line
- [GROOVY-2860] - Groovy/Grails Joint build fails with error: The field 'metaClass' is declared multiple times.
- [GROOVY-2861] - Instantiating a class inside a script invoked by the GroovyScriptEngine causes a NullPointerException
- [GROOVY-2863] - Groovy Bundle Manifest should use Import-Package instead of hardcode Require-Bundle (bundle names)
- [GROOVY-2864] - defining a field and a property of the same name
- [GROOVY-2867] - Impossible to use Map.get() or put() inside use(DOMCategory)
- [GROOVY-2874] - ClassCastException sometimes from .properties.each
- [GROOVY-2875] - MetaClassRegistryImpl constantMetaClasses map is leaking resources
- [GROOVY-2876] - Incorrect manifests for OSGi usage
- [GROOVY-2878] - byte[].encodeBase64() incorrectly introduces line breaks
- [GROOVY-2891] - bug in GroovyCategorySupport - infinite loop
- [GROOVY-2905] - File.eachLine reports line numbers starting with 1, 2,...
- [GROOVY-2906] - Fix and improvement for Base64 encoding in GDK
- [GROOVY-2911] - StreamingDOMBuilder does not implement default namespace properly
- [GROOVY-2912] - flatten() does not work on byte[]
- [GROOVY-2915] - StreamingSAXBuilder is missing startDocument() and endDocument()
- [GROOVY-2917] - Groovy/Grails Joint Build: The 'field' metaClass is declared multiple times problem
- [GROOVY-2924] - Problem with reserved keyword and annotations
- [GROOVY-2928] - "as" does not convert strings to integer types
- [GROOVY-2938] - MarkupBuilder indentation fails when combining yield statements and empty tags
- [GROOVY-2948] - classloading weird issue
- [GROOVY-2950] - Problem in Groovy Console - can not create new window.
- [GROOVY-2957] - Some enhanced SwingBuilder attributes mask actual attributes of child content
- [GROOVY-2965] - No argument invocation fails for closure with variable argument list.
- [GROOVY-2966] - IllegalArgumentException from @Bindable AST Transformation with Integer properties
- [GROOVY-2976] - ClassCastException when printing a mixed type int/long range
- [GROOVY-2989] - Unescaped less-than in Matcher#getAt docs
- [GROOVY-3001] - BUG! exception in phase 'semantic analysis' in source unit 'sample/SimpleBean.groovy' null using Groovy-1.5.{5,6} with GlassFish V3's JSF+Groovy Support
- [GROOVY-3002] - XmlNodePrinter does not propertly handle special characters within tag values
- [GROOVY-3011] - Compile error when using generic types with upper bounds
- [GROOVY-3012] - abstract getter in super class is not overwritten by property in subclass by stub generator
- [GROOVY-3019] - Groovy calls wrong method if they are the same name and an Array attribut
- [GROOVY-3021] - Inheritance of getProperty method broken
- [GROOVY-3028] - Make Regular Expression handling consistent
- [GROOVY-3029] - Grails compiler is broken because CompilationUnit.PrimaryClassNodeOperation is no longer called like it used to be
- [GROOVY-3031] - Groovy Console: binding is not preserved between selection invocations
- [GROOVY-3034] - Import static ignores superclass public methods
- [GROOVY-3039] - [null]-[1] leads to java.lang.NullPointerException
- [GROOVY-3049] - PropertyExpression contains wrong line,column data
- [GROOVY-3050] - RangeExpression providing wrong ClassNode
- [GROOVY-3051] - ForStatement wrong line, column data
- [GROOVY-3061] - ExpandoMetaClass handling when closure itself is a "meta" closure
- [GROOVY-3070] - ListExpression, MapExpression inside PropertyExpression wrong line, column data
- [GROOVY-3077] - Bindable transformation causes verification errors with static properties
Improvement
- [GROOVY-715] - Optional return for "if" statements [minor breaking change]
- [GROOVY-1131] - Character ++ and -- should be closed under their type
- [GROOVY-1389] - Groovy does not support $ in the beginning of a field name
- [GROOVY-1725] - SQL pipeline improvement
- [GROOVY-2138] - let groovy support concatting objects and strings with plus sign
- [GROOVY-2308] - use java5 classes for ConcurrentReaderHashmap
- [GROOVY-2778] - Allow users to register new commands
- [GROOVY-2783] - sql.rows() and sql.eachRow() not consistent in behaviour?
- [GROOVY-2808] - Global transforms should only be executed once in IntelliJ IDEA
- [GROOVY-2820] - auto indent for GroovyConsole
- [GROOVY-2842] - Line/Column Information for ClassNodes in throws expression
- [GROOVY-2843] - Line/Column Information for ClassNodes in imports
- [GROOVY-2844] - Line/Column Information for fully qualified class names
- [GROOVY-2845] - GenericTypes in AST for local variable
- [GROOVY-2846] - Line/Column Information for ClassNodes in CastExpression and ArrayExpression
- [GROOVY-2847] - GenericTypes in AST for ConstructorCallExpression
- [GROOVY-2851] - leftShift operator for map
- [GROOVY-2859] - make GroovyResultSet object printable
- [GROOVY-2862] - Some DGM niceness for Character
- [GROOVY-2893] - Line-/Column Information of PropertyExpression and FieldExpression
- [GROOVY-2896] - Findbugs reporting error in groovy compiled class
- [GROOVY-2919] - make groovyConsole browser friendly
- [GROOVY-2927] - GString isCase() should return true when comparing two GStrings which have the same toString() value [minor breaking change]
- [GROOVY-2946] - withReader(File, String, Closure) is missing
- [GROOVY-3013] - Allow joint compiler to keep generated stubs
- [GROOVY-3018] - It would be good to be able to name threads when using the DGSM start variants
- [GROOVY-3022] - SpreadDot should also work for Enumeration
- [GROOVY-3025] - *. (spread-dot) should always call iterator on its recevier, and never fall back to the semanics of . (dot)
- [GROOVY-3030] - Make FactoryBuilderSupport.getContextAttribute() public
New Feature
- [GROOVY-1543] - Support multiple declarations at once: def a,b = 1,2
- [GROOVY-2920] - XmlSlurper: Query NodeChild for Namespace URI
- [GROOVY-2940] - DGM should have sort for Map which works on the EntrySet and creates a LinkedHashMap containing the sorted result
- [GROOVY-2973] - Provide a GString.EMPTY that allows GString concatenation with Strings
- [GROOVY-3004] - List implementation that fires PropertyChangeEvents
- [GROOVY-3046] - Groovy should provide an @Immutable annotation to make creating immutable objects easy
- [GROOVY-3072] - Annotation for making 'new' statements cleaner
Task