Changelog for Groovy 1.1.0-rc-1

Bug

  • [GROOVY-1186] - NullpointerException occurs when unboxing boolean Java return type where no return value specified from Java interface implemented in Groovy
  • [GROOVY-1323] - Inline conditional List << not being executed fully.
  • [GROOVY-1440] - println /hello/ results in unexpected token exception
  • [GROOVY-1503] - SimpleTemplateEngine drops Windows new-line character (\r)
  • [GROOVY-1517] - DomToGroovy outputs builder code not compatible with MarkupBuilder
  • [GROOVY-1549] - Array equality is not treated same as List equality
  • [GROOVY-1738] - Color settings not saving
  • [GROOVY-1744] - Extreme performance problem when calling closures using 'shorthand' notation
  • [GROOVY-1776] - GroovyJ 0.1.9 corrupts compiler caches in IDEA Selena
  • [GROOVY-1860] - Problem calling override method with different return type.
  • [GROOVY-1863] - Groovy compiler executes code it is compiling
  • [GROOVY-1913] - Problem when running script that uses java covariants
  • [GROOVY-1962] - add a stream based class reader and an optional java5 module
  • [GROOVY-1978] - static imports not working with groovy classes
  • [GROOVY-1995] - minus(List self, Collection removeMe) throws IllegalStateException for dupplicate values
  • [GROOVY-2126] - ClassCastException when using java.util.prefs package
  • [GROOVY-2130] - Use of java iterators in for loop is syntax error
  • [GROOVY-2132] - Filter stacktraces in the new shell
  • [GROOVY-2133] - Static imports not working inside closures
  • [GROOVY-2136] - Static import of properties and fields does not work
  • [GROOVY-2137] - Enum class does not load
  • [GROOVY-2139] - Can not init instances with super(...)
  • [GROOVY-2141] - ExpandoMetaClass has concurrency modification issues with multiple threads
  • [GROOVY-2150] - ClosureMetaClass regression (mapping of ArrayLIst to parameters)
  • [GROOVY-2152] - Stacktrace in the new shell
  • [GROOVY-2153] - BUG! exception in phase 'semantic analysis'
  • [GROOVY-2155] - Some additional static import regressions since beta-2
  • [GROOVY-2156] - Parameter annotations cannot be queried at runtime
  • [GROOVY-2157] - Elvis operator is evaluating the "true" expression twice
  • [GROOVY-2158] - Code crashing in new shell but not in old
  • [GROOVY-2159] - Stub generator does not generate stubs for Groovy sub classes
  • [GROOVY-2165] - GroovyClassLoader dead lock situation with multiple threads
  • [GROOVY-2166] - ExpandoMetaClass causes exceptions with multiple threads, need to sync on isInitialised()
  • [GROOVY-2167] - Occasional NPE with multiple threads with class caching mechanism
  • [GROOVY-2169] - NPE in GroovyScriptEngine
  • [GROOVY-2170] - Purge commands don't work anymore in the new shell
  • [GROOVY-2180] - LoaderConfiguration is broken for relative paths
  • [GROOVY-2181] - NPE generated groovydoc documentation
  • [GROOVY-2187] - GString as String[] returns a 1-element array with the whole text
  • [GROOVY-2188] - missing coercion for array
  • [GROOVY-2190] - check generics usage in class header
  • [GROOVY-2194] - The method primitiveArrayToList doesn't checks for nulls inside arrays causing NPE
  • [GROOVY-2198] - owner/delegatechain is broken for multiple delegates

Improvement

  • [GROOVY-1314] - support covariant return types (& generics)
  • [GROOVY-1737] - Map unary negation operator to a method and be able to overload it via a Category
  • [GROOVY-1832] - XMLParser: remove method on NodeList returns true (success). But, Node is not removed.
  • [GROOVY-1835] - Allow string coercion into classes
  • [GROOVY-1977] - Allow static and default to be used as property names after the dereference operator
  • [GROOVY-1979] - SimpleTemplateEngine (and poentially other TemplateEngines) should allow caller to specify classloader
  • [GROOVY-1996] - Groovy-all pom.xml has dependency to an outdated version of Castor
  • [GROOVY-2053] - Re-write InteractiveShell (aka. groovysh) in Groovy
  • [GROOVY-2068] - Extract a FactoryBuilder from SwingBuilder
  • [GROOVY-2102] - Groovy-all pom.xml omits <optional> tag for its optional dependencies
  • [GROOVY-2140] - Handle Null Attributes in MarkupBuilder
  • [GROOVY-2142] - Add new metaClass property to all objects to unify access to meta class across instances
  • [GROOVY-2162] - The unary negate "~" operator could work with any kind of object, not just numbers and strings
  • [GROOVY-2172] - Change the new groovysh IO debug/verbose/quiet to a single verbosity field
  • [GROOVY-2173] - Create a Main CLI class for the new groovysh, to free Groovysh from those details
  • [GROOVY-2179] - Make the *new* groovysh the default

New Feature

  • [GROOVY-174] - Round Peg, Square Hole
  • [GROOVY-604] - Provide parsing errors and warnings
  • [GROOVY-605] - Automatic imports
  • [GROOVY-608] - Provide refactoring capabilities
  • [GROOVY-611] - Intention actions
  • [GROOVY-614] - Add an Outline/File structure pane
  • [GROOVY-1851] - Expose unary plus and unary minus operators as interceptable method calls: positive() and negative()
  • [GROOVY-2131] - Map implementation that fires PropertyChangeEvents
  • [GROOVY-2174] - Add commands to capture/manage a complete transcript of a groovysh session
  • [GROOVY-2175] - Add something like pythons {{sys.displayhook}} to the new groovysh
  • [GROOVY-2176] - Install SecurityManager for groovysh to prevent unwanted System.exit()

Sub-task

  • [GROOVY-1902] - add check for usage of generics only with generics enabled classes and with the correct number of parameters
  • [GROOVY-2151] - Filter stack traces in GroovyConsole