Changelog for Groovy 1.6.4

Bug

  • [GROOVY-2441] - @Deprecated does not have effect in Groovy
  • [GROOVY-2969] - parameter annotations for constructors do not show up in runtime environment
  • [GROOVY-3125] - Some GroovyClassLoader issues around recompile
  • [GROOVY-3223] - Nested javac Ant task does not do property substitution on its attributes
  • [GROOVY-3269] - XmlTemplateEngine does not handle namespace prefixes correctly
  • [GROOVY-3286] - DefaultGroovyMethods#reverse(String) does not reverse strings correctly
  • [GROOVY-3323] - compiler report error when using @Delegate to implement an interface
  • [GROOVY-3406] - GroovyRuntimeException thrown Ambiguous method overloading when accessing metaClas of java.lang.String
  • [GROOVY-3449] - groovyc in 1.6.0 no longer supports 'deprecation' attribute on nested javac
  • [GROOVY-3450] - Ant properties don't work within the source / target attributes on javac Ant task within groovyc task
  • [GROOVY-3468] - NullPointerException in GroovyClassLoader.getPermissions() when called from BSFManager.exec()
  • [GROOVY-3471] - @Delegate not working when it refers to a Map
  • [GROOVY-3501] - NPE at groovy.lang.GroovyClassLoader.getPermissions(GroovyClassLoader.java:342)
  • [GROOVY-3506] - ExpressionTransformer pattern doesn't work reliably
  • [GROOVY-3512] - Thread safety issue related to addBasicPersistenceMethods? explodes with an ArrayIndexOutOfBoundsException
  • [GROOVY-3516] - Fix introduced for GROOVY-3436 created a situation that can result in a stackoverflowerror with some groovy config objects
  • [GROOVY-3523] - Groovy needs to upgrde Ivy lib to upgrade maven hashing algorithm
  • [GROOVY-3527] - groovyc ant task generates invalid class name with IBM jdk and some build.xml paths
  • [GROOVY-3528] - trying access noon static field from static method leads to VerifyError
  • [GROOVY-3537] - getPackage() on Class Always Returns Null
  • [GROOVY-3542] - GroovyShell.evaluate(File) NPE
  • [GROOVY-3543] - error inside @Category when using multiple properties other than this
  • [GROOVY-3551] - strange error accessing property following method call in @Category class, invokeStaticMissingMethod
  • [GROOVY-3560] - IllegalArgumentException with interface typed varargs
  • [GROOVY-3566] - ConfigSlurper fails with nested closures in environments
  • [GROOVY-3570] - Causes application to crash due to too many files being open
  • [GROOVY-3571] - equals method for @Immutable classes not correctly looking at other's class
  • [GROOVY-3574] - Closure.toString() calls the closure
  • [GROOVY-3575] - RuntimeException in SwingBuilder data binding
  • [GROOVY-3576] - Verifier#getMetaClassField(ClassNode) can throw a NPE
  • [GROOVY-3577] - AbstractReaderSource.getLine always returns null when no Janitor
  • [GROOVY-3589] - cast with as keyword produces error unlike versions 1.5 and before
  • [GROOVY-3590] - Map.get(key, defaultvalue) doesn't work properly if current value is null.
  • [GROOVY-3591] - Test faiing on Mac OS X with the latest JDK update
  • [GROOVY-3594] - line breakpoint breaks execution as many times as many expressions are on that line
  • [GROOVY-3596] - Generic Map reference fails to compile
  • [GROOVY-3599] - BindingProxy.setModel() disconnects listeners
  • [GROOVY-3603] - imageIcon and other such "default text" nodes should auto-convert fom GStrings to Strings
  • [GROOVY-3606] - @Bindable generates wrong byte code depending on compilation order
  • [GROOVY-3607] - FactoryBuilderSupport throws NPE when registering a factory under special conditions
  • [GROOVY-3609] - groovysh display command shows wrong line numbers
  • [GROOVY-3611] - CLONE -Compile-error when implementing a method from a generic interface
  • [GROOVY-3615] - Groovyc does not set ACC_SUPER for classes
  • [GROOVY-3621] - Groovy swallowing exceptions when MissingMethodException occurs with a closure that throws an exception
  • [GROOVY-3622] - gpath regression: lists of lists are no longer flattened as in Groovy 1.0
  • [GROOVY-3623] - A call to MetaClassRegistry.removeMetaClass() can unexpectedly cause other live entries to be removed
  • [GROOVY-3624] - implicit null call allowed for primitive type argument
  • [GROOVY-3627] - Compiler resolves this.foo() and super.foo() to statically imported method foo
  • [GROOVY-3647] - Vetoable and Bindable properties cause rendering bug when PropertyVetoException is raised

Improvement

  • [GROOVY-3381] - null.clone() should throw NPE instead of CloneNotSupportedException
  • [GROOVY-3505] - Doc (of any kind) missing for XmlTemplateEngine
  • [GROOVY-3507] - Class comment nominated for the most useless comment of the year
  • [GROOVY-3555] - It would be good if @Delegate didn't delegate @Deprecated methods
  • [GROOVY-3561] - Documentation for the sort method in Collection class is misleading
  • [GROOVY-3569] - return value of firstRow() if empty
  • [GROOVY-3572] - Align SwingBuilder.doOutside() with SwingBuilder.edt()
  • [GROOVY-3586] - @Immutable should set the class to final if not already set
  • [GROOVY-3614] - let the groovy.servlet.TemplateServlet use system property groovy.source.encoding as the source encoding
  • [GROOVY-3642] - Add synthetic binding support for JSpinner.value
  • [GROOVY-3650] - Gradle supports a more compact specification of maven/ivy style dependencies - it would be nice for @Grab to support this too

New Feature

  • [GROOVY-2733] - Generify collections' related methods in GDK
  • [GROOVY-3619] - Enable JComponent.size to be bindable
  • [GROOVY-3641] - Added new rounding methods to Float and Double that take a precision being the number of decimal places to round to
  • [GROOVY-3652] - Enhance Swing classes and models with additional methods

Sub-task

  • [GROOVY-3554] - Update documentation to reflect current limitation of Multiple Assignment feature