Changelog for Groovy 1.1.0-beta-1

Bug

  • [GROOVY-393] - cannot update a write-only property
  • [GROOVY-446] - cvs tags are wrong in two files in groovy.ant package
  • [GROOVY-554] - a Node created with no value can not have children added to it.
  • [GROOVY-571] - Groovy fails to complie against latest Xalan 2.6.0
  • [GROOVY-737] - Aliasing problem
  • [GROOVY-912] - Setting protected field using named arguments in constructor silently fails
  • [GROOVY-929] - Setting private field in Bean constructor fails sliently
  • [GROOVY-1048] - MetaClass.setProperty() tries to access protected fields instead of a given setter Method
  • [GROOVY-1061] - try..catch can't be in the middle of a method
  • [GROOVY-1167] - Object.collect(Collection,Closure) fails to work with Set parameter
  • [GROOVY-1173] - When importing a class that's not on the classpath, the import fails silently.
  • [GROOVY-1191] - -cp and Caller/Call example
  • [GROOVY-1300] - ClassFormatError: Invalid method Code ... thrown when using JOGL
  • [GROOVY-1322] - RangeExpression doesn't implement Expression not allowing it to be the target of an assert
  • [GROOVY-1383] - DOMBuilder class raises NPE if value is null
  • [GROOVY-1476] - Variable arity method problem
  • [GROOVY-1492] - Setting property value via GString causes VerifyError
  • [GROOVY-1518] - VerifyError
  • [GROOVY-1522] - catch block without explicit exception type results in VerifyError
  • [GROOVY-1530] - stack overflow error when supplying insufficient number of argments
  • [GROOVY-1539] - java.lang.VerifyError
  • [GROOVY-1551] - each invocation of run on GroovyScriptEngine don't share same GroovyClassLoader
  • [GROOVY-1566] - problems with if statements not returning correctly
  • [GROOVY-1581] - ConcurrentModificationException when running same script in multiple threads
  • [GROOVY-1598] - Access an element in a Map
  • [GROOVY-1602] - Using the groovy task in ant, my tasks run twice
  • [GROOVY-1615] - "Class is declared in a dynamic context"
  • [GROOVY-1618] - Groovy SQL insertion failing against SQL Server using JTDS
  • [GROOVY-1626] - Inconsitent stack height when using super
  • [GROOVY-1629] - (null as String) should return null but throws NullPointerException
  • [GROOVY-1634] - Can't set the delagate on a curried closure
  • [GROOVY-1645] - r4814 fails to build under Java SE 6
  • [GROOVY-1651] - Bitwise OR and AND operators with left operand inverted (!) cause VerifyError
  • [GROOVY-1655] - Subscript operator semantics on Map different to property operator
  • [GROOVY-1657] - XmlNodePrinter fails to print GString attribute values correctly
  • [GROOVY-1663] - try-finally block creates a VerifyError when used in methods with return values
  • [GROOVY-1664] - Case with Interface
  • [GROOVY-1668] - replace not thread safe reference map implementation with thread safe version
  • [GROOVY-1670] - toString() on NullObject does not throw a NPE
  • [GROOVY-1675] - Outline view throws exception when clicking on import statment
  • [GROOVY-1682] - polymorphic static methods
  • [GROOVY-1697] - MemoryAwareConcurrentReadMap drops entries which are still live.
  • [GROOVY-1703] - error in wiki example
  • [GROOVY-1730] - curried closure: getParameterTypes() doesn't work
  • [GROOVY-1747] - Compiler doesn't recognize fully qualified class name in method
  • [GROOVY-1749] - java.lang.VerifyError with nested closures
  • [GROOVY-1760] - Static methods on a extending class are just ignored and hidden by the extended class
  • [GROOVY-1761] - NPE when the () after a method name are missing
  • [GROOVY-1774] - Problem when using primitive return type inside a try block
  • [GROOVY-1777] - Inconsistent stack height error
  • [GROOVY-1787] - GroovyClassLoader fails to load a script from a file whose absolute name contains spaces
  • [GROOVY-1788] - Can't execute Thread.setDefaultUncaughtExceptionHandler
  • [GROOVY-1790] - Calling back into java base class method inside an if statement causes java.lang.VerifyError: Inconsistent stack height 1 != 0
  • [GROOVY-1792] - Non writeable properties witreable
  • [GROOVY-1799] - this() does not work
  • [GROOVY-1800] - Inconsistent stack height 0 != 1
  • [GROOVY-1805] - SwingBuilder does not intialzie properties in code order
  • [GROOVY-1806] - import static not supported
  • [GROOVY-1810] - size() not supported on two-dimensional boolean arrays
  • [GROOVY-1815] - import doesn't allow inner classes
  • [GROOVY-1816] - Closure Listener does not work with method events that have more than one parameter
  • [GROOVY-1817] - JTable ColumnModel not set in SwingBuilder
  • [GROOVY-1821] - Expecting to find object/array on stack
  • [GROOVY-1822] - Fallthrough in Switch Statements doesn't work for Patterns
  • [GROOVY-1824] - map.class returns null
  • [GROOVY-1829] - Problem with GString as names of the method call inside a closure.
  • [GROOVY-1833] - blank in path makes calling one groovy file from another fail
  • [GROOVY-1837] - Groovy console broken with NPE on Mac OS X
  • [GROOVY-1839] - Fully qualified annotations are not parsed properly
  • [GROOVY-1844] - Subclasses of groovy.lang.Closure can't be invoked like closures
  • [GROOVY-1846] - Referencing a method closures should work with GStrings
  • [GROOVY-1852] - Closure constant on interface not callable without call()
  • [GROOVY-1854] - DefaultGroovyMethods File[] null check
  • [GROOVY-1856] - Error while selecting appropriate method
  • [GROOVY-1862] - Resource leak in ResolveVisitor.isSourceNewer()

Improvement

  • [GROOVY-1126] - make newObjectInputStream() available on InputStream
  • [GROOVY-1311] - make Groovy Stubs and Mocks deal with property access same as with method calls
  • [GROOVY-1376] - rename (or alias) assertArrayEquals to assertEquals
  • [GROOVY-1619] - Allow the addition of MetaBeanProperty instances to MetaClassImpl
  • [GROOVY-1640] - Add "".hasText() method
  • [GROOVY-1647] - Improve Groovy Truth for CharSequence and arrays
  • [GROOVY-1750] - printf should work with any PrintStream and support sprintf
  • [GROOVY-1752] - Add arg types and return types to error messages
  • [GROOVY-1770] - use(category){closure} should propagate the value returned by its closure
  • [GROOVY-1818] - Option to remove the GroovyObject dependency and compile to 'pure' Java
  • [GROOVY-1849] - Add the ability to assign before and after interceptors to groovy shell and groovy console to hook into script execution

New Feature

  • [GROOVY-1665] - Allow Closures to be lazily evaluated in GStrings
  • [GROOVY-1676] - Implement literal Map addition/concatenation like "[a:1, b:2] + [c:3]"
  • [GROOVY-1695] - Add (new|with)(Object|Data)(Input|Output)Stream
  • [GROOVY-1745] - DefaultGroovyStaticMethods addShutdownHook( Object obj, Closure closure)
  • [GROOVY-1828] - GDK: Add eachDirMatch and eachDirRecurse on File
  • [GROOVY-1834] - Migrate ExpandoMetaClass from Grails into Groovy

Sub-task

Task

  • [GROOVY-8] - Map/List expressions as last expression of new object exprs.
  • [GROOVY-974] - remove transformName() hack in MarkupBuilder
  • [GROOVY-1711] - New Build System
  • [GROOVY-1772] - Upgrade Ant to 1.7.0

Wish

  • [GROOVY-301] - consider adding neater syntax for getters/setters maybe using closure-like syntax
  • [GROOVY-1287] - use(category, closure) should return the closures return value.
  • [GROOVY-1636] - Support as SortedSet