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