Changelog for Groovy 3.0.5

Bug

  • [GROOVY-4945] - Incorrect "Possible solutions" when calling a method on super in a non-derived class
  • [GROOVY-5103] - groovy compiler ignores import * for static nested classes in java sources
  • [GROOVY-7094] - Semantic of access super fields is not consistent: super.@field == super.field
  • [GROOVY-7512] - Cannot call Trait method from Closure when using static compilation
  • [GROOVY-7549] - java.lang.IllegalAccessError occurs when attempting to run code built with CompileStatic
  • [GROOVY-7701] - org.codehaus.groovy.runtime.typehandling.GroovyCastException in Groovy ".with { ... }" - Block
  • [GROOVY-7848] - Closure generic parameters ignored and return types missing from collections methods
  • [GROOVY-8100] - MarkupBuilder cant yield before first tag
  • [GROOVY-8274] - methodMissing not executed when the delegate is an inner class
  • [GROOVY-8715] - Cannot resolve array of inner class from type in same package (no import)
  • [GROOVY-8840] - CLONE - Compile Static causes getAt to fail (advanced cases)
  • [GROOVY-8999] - Access to private fields and methods from subclass exhibits strange behavior
  • [GROOVY-9344] - CCE in closure shared variable assignment
  • [GROOVY-9422] - @CompileStatic non-static inner class instantiation in closure
  • [GROOVY-9477] - FastStringServiceFactory SPI loading in OSGi
  • [GROOVY-9516] - Static compiler infers wrong type for implicitly shared variables
  • [GROOVY-9548] - groovydoc: properties claim to be "private" and don't show annotations
  • [GROOVY-9554] - @Field variable access within closures broken
  • [GROOVY-9558] - Wrong code for putAt on Map that is member of closure delegate
  • [GROOVY-9562] - Base class property causes CCE
  • [GROOVY-9566] - Default import for Proxy is wrong
  • [GROOVY-9567] - groovydoc: abstract methods do not have abstract modifier
  • [GROOVY-9568] - groovydoc: extra default constructor
  • [GROOVY-9569] - SC: new compiler error for access of static, non-final, outer-class field *
  • [GROOVY-9571] - groovydoc: annotation definitions, enums, interfaces, and traits have a default ctor
  • [GROOVY-9573] - groovydoc: byte[] shown as [B
  • [GROOVY-9574] - ConcurrentModificationException in Java9.concealedPackageList
  • [GROOVY-9575] - ASTNode.hashCode violates Object.hashCode contract: does not return consistent value
  • [GROOVY-9577] - Order of ModuleNode#getImports() is expected but not guaranteed
  • [GROOVY-9580] - STC: return type checking for generic, covariant property gives false error
  • [GROOVY-9581] - コンパイラで、クロージャから静的クラス変数を参照できない.
  • [GROOVY-9584] - CLONE - Error when creation a variable named "context"
  • [GROOVY-9586] - SC: calling trait method inside closure has incorrect receivers data
  • [GROOVY-9587] - Scope of method call changed from non-static to static 2.4->2.5
  • [GROOVY-9588] - groovyCompile 6x slower in 3.0.4 than 2.5.6
  • [GROOVY-9591] - Compiler error for use of variable expression within tap closure
  • [GROOVY-9597] - CompileStatic: @ClosureParams in @DelegatesTo doesn't work
  • [GROOVY-9598] - CompileStatic: Runtime error: Access outer class property from static inner in @DelegatesTo
  • [GROOVY-9599] - CliBuilder: Option with "type: String, defaultValue ''" (empty String) results in NullObject if default value is applied
  • [GROOVY-9600] - Picocli-related VersionProvider helper classes should be public to avoid access warnings
  • [GROOVY-9601] - Parsing text into a class became much slower under Groovy 3.x
  • [GROOVY-9603] - Assignment of Map literal to Map element fails to compile (static)
  • [GROOVY-9604] - STC: method or property missing errors for Closure's getResolveStrategy(), etc.
  • [GROOVY-9605] - leftShift operator does not work on BigInteger (throws UnsupportedOperationException)
  • [GROOVY-9606] - Traits using generics generate incorrect stub for Methods
  • [GROOVY-9607] - Class generation regression in 3.0.5-ss: This method should not have been called
  • [GROOVY-9608] - MetaClassImpl.getAttribute(Class,Object,String,boolean) drops super
  • [GROOVY-9611] - Reflexive access to class attributes broken in Groovy 3
  • [GROOVY-9615] - super.method() can trigger method on outer class in case of missing method
  • [GROOVY-9618] - Property reference resolves to field, not getter when property name is single upper-case letter *
  • [GROOVY-9620] - MetaClassImpl uses findPropertyInClassHierarchy inefficiently
  • [GROOVY-9634] - ClassNode hasPossibleMethod and tryFindPossibleMethod make inefficient use of getMethods(String) and getSuperClass()
  • [GROOVY-9642] - Inner interface of parent class unresolved in anon. inner class expression
  • [GROOVY-9643] - Using Spock thrown() method causes IllegalAccessError for 2.0-M2-groovy-3.0 on JDK 8 with noverify switch
  • [GROOVY-9645] - Inconsistencies in JavaBean naming for property access

Dependency upgrade

Improvement

  • [GROOVY-9576] - groovydoc: $INIT static method shown on Groovy enums
  • [GROOVY-9578] - Also output aborted tests in JUnit 5 GroovyJUnitRunnerHelper
  • [GROOVY-9589] - Parse source codes in parallel
  • [GROOVY-9592] - Replace "groovy.generate.stub.in.memory" with "groovy.mem.stub"
  • [GROOVY-9594] - Rename whitelist/blacklist in SecureASTCustomizer to more meaningful names *
  • [GROOVY-9602] - return more specific type for ifS/ifElseS helper methods in GeneralUtils
  • [GROOVY-9619] - Adjust pom for groovy-test-junit5 so that junit-jupiter-api is compile time not runtime
  • [GROOVY-9633] - Improve the doco on the Groovy Console
  • [GROOVY-9644] - Add java.io.File to immutable type list

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