Changelog for Groovy 2.1.0-beta-1

Bug

  • [GROOVY-3153] - groovy, groovysh, groovyconsole, etc Cannot use spaces in supplied classpath -cp
  • [GROOVY-4637] - XmlSlurper Unable to Access Attributes with Same Name but in Different Namespaces
  • [GROOVY-4648] - Pasting into groovy console using shift+insert turns overwrite mode on.
  • [GROOVY-4950] - ConfigSlurper broken on AppEngine
  • [GROOVY-5191] - Running script with '--enoding' param and some script parameters
  • [GROOVY-5394] - Grape's Grab ignores 'ext' when classifier is not set
  • [GROOVY-5433] - Node is missing documentation
  • [GROOVY-5439] - error: incompatible types on Java stubs returning generics
  • [GROOVY-5468] - Documentation error for ExpandoMetaClass
  • [GROOVY-5583] - Parsing problem of number literal 0x8000000000000000L
  • [GROOVY-5590] - Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.io.IOException: Cannot run program "find": java.io.IOException: error=24, Too many open files
  • [GROOVY-5591] - groovy-all-2.0.0-sources.jar is missing lots of source files
  • [GROOVY-5598] - Cannot use @CompileStatic with Thread.start method
  • [GROOVY-5607] - @Compile static Sql.newInstance
  • [GROOVY-5608] - @CompileStatic casting problem
  • [GROOVY-5630] - Java stub generator generates wrong cast for return value of generic method
  • [GROOVY-5635] - SyntaxException.getEndColumn() returns "getStartColumn() + 1"
  • [GROOVY-5636] - java.lang.ArrayIndexOutOfBoundsException: size==0
  • [GROOVY-5660] - JsonOutput Date formatting is not threadsafe
  • [GROOVY-5665] - Groovyc ant task fails with nested javac when using generics
  • [GROOVY-5666] - Incorrectly finding "where" in query string
  • [GROOVY-5668] - Input stream not closed
  • [GROOVY-5669] - DOMCategory should provide name() convenience method for Node's not just Element's
  • [GROOVY-5675] - Stub compiler expands generic-inner-class variable declaration incorrectly
  • [GROOVY-5687] - Constants defined in an interface not visible to implementing subclass in a static context
  • [GROOVY-5691] - TimeoutException immediately thrown when using both TimedInterrupt and with {} closure on a Map
  • [GROOVY-5695] - jarsigner fails because two duplicate objects exists in groovy-2.0.1.jar
  • [GROOVY-5705] - STC: calling a closure stored in a property yields an NPE
  • [GROOVY-5710] - Stub generator should not use raw types when casting default return values
  • [GROOVY-5712] - @TypeChecked and "Charset ISO_8859_1_CHARSET = Charset.forName("ISO-8859-1")": Cannot assign value of type java.lang.Class to variable of type java.nio.charset.Charset
  • [GROOVY-5723] - Problem with cached calls with GroovyServlet
  • [GROOVY-5729] - Delegation to an interface with deprecated methods shows a compile error
  • [GROOVY-5732] - Delegating to an abstract class hierarchy doesn't implement interfaces at a higher level
  • [GROOVY-5737] - @Log won't compile with @CompileStatic if "log" is used in a Closure
  • [GROOVY-5738] - The if(instanceof) block is not inferring type in a Closure
  • [GROOVY-5739] - performance problem in DefaultGroovyMethods.removeAll()
  • [GROOVY-5751] - Adding milliseconds with TimeCategory gives incorrect toString
  • [GROOVY-5762] - Static compilation runtime error when using mapped constructor
  • [GROOVY-5766] - Changes in groovy.json.JsonOutput require extensive permissions that aren't compatible with some web frameworks.
  • [GROOVY-5779] - Static type checking - Color.red recognized as int
  • [GROOVY-5792] - XmlNodePrinter uses quote variables for more than just attributes
  • [GROOVY-5803] - wasted work in "ClassNode.addMixin"
  • [GROOVY-5811] - InvokerInvocationException not being unwrapped *
  • [GROOVY-5828] - No way to tell @Immutable that you're using an Immutable List structure already
  • [GROOVY-5838] - groovydoc not working (ClassNotFoundException)
  • [GROOVY-5844] - Copy/paste error in EmptyBorderFactory
  • [GROOVY-5849] - wasted work in "ClassCompletionVerifier.checkMethodForWeakerAccessPrivileges"
  • [GROOVY-5851] - wasted work in "SimpleGroovyClassDocAssembler.extractName"
  • [GROOVY-5853] - wasted work in "DefaultGrailsDomainClassInjector.implementsMethod"
  • [GROOVY-5854] - wasted work in the "ClassNode" constructor

Improvement

  • [GROOVY-5472] - remove $getCallSiteArray for indy compilation
  • [GROOVY-5509] - Add base script option to groovyc and its ant task
  • [GROOVY-5553] - Provide a builder for compilation customizers
  • [GROOVY-5554] - AST customizer working as a guard for another
  • [GROOVY-5560] - Add DGM leftShift and other appropriate methods for java.lang.Appendable interface
  • [GROOVY-5563] - Option to default to Static Compilation
  • [GROOVY-5626] - Remove buildSrc's target and .gradle directories from the source distribution
  • [GROOVY-5646] - Allow customization of @Singleton's instance getter name
  • [GROOVY-5667] - upgrade to gradle 1.1
  • [GROOVY-5680] - collectMany should have a map variant
  • [GROOVY-5716] - @Immutable annotation should allow Cloneable fields
  • [GROOVY-5745] - DGM should have a getAt method for Iterable
  • [GROOVY-5767] - Support for DSL type checking
  • [GROOVY-5794] - Upgrade junit to 4.11
  • [GROOVY-5795] - Upgrade testng to 6.8
  • [GROOVY-5796] - upgrade qdox to 1.12.1
  • [GROOVY-5813] - array coercion missing for subarray assignment
  • [GROOVY-5815] - The range interface should return the generic type T from getTo() and getFrom()
  • [GROOVY-5840] - support jar: in addition to file: and http: for urls when running scripts on the command line
  • [GROOVY-5845] - Add an includePackage attribute for the ToString AST transform
  • [GROOVY-5862] - Pretty toString() for AnnotationConstantExpression

New Feature

  • [GROOVY-5503] - Compiler flag for type checking most classes, and TypeUnchecked annotation override
  • [GROOVY-5549] - add DGM variant for Map#subMap supporting an array of keys
  • [GROOVY-5682] - Add clone or copy constructor to XML Node
  • [GROOVY-5714] - @DelegatesTo annotation for IDEs/TypeChecker

Task

Wish

  • [GROOVY-5821] - Provide a way to assemble an annoation consisting of several other

* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)