Changelog for Groovy 4.0.0-alpha-2
Bug
- [GROOVY-6453] - groovysh in Windows 7/8/10 doesn't support arrow keys and Del
- [GROOVY-6882] - STC: AIC cannot resolve overridden method of outer class
- [GROOVY-7494] - ArrayStoreException assigning GStringImpl to String[] when using Indy
- [GROOVY-8270] - Bug in @AutoImplement
- [GROOVY-9093] - SC: subclass access to package-private or private field is not indicated as an error
- [GROOVY-9757] - ASTTest is run for every SourceUnit in a CompilationUnit
- [GROOVY-9758] - groovsh import of non existing class throws null pointer instead of syntax error
- [GROOVY-9760] - NPE when trait with type parameter is implemented as raw type
- [GROOVY-9762] - Wrong type resolved if method reference used with typed method
- [GROOVY-9763] - Regression in groovyc 3.0 and 4.0 and Compile static with generic static method in trait
- [GROOVY-9769] - STC: UnionTypeClassNode created for simple instanceof scenarios
- [GROOVY-9770] - Groovy 3 generated lambda classes are marked as synthetic
- [GROOVY-9771] - STC: "putAt" shortcut notation to outer class private field from Closure leads to GroovyCastException
- [GROOVY-9772] - AnnotationCollectorTransform generates code not marked with @Generated
- [GROOVY-9779] - Inconsistency with callable properties in static context
- [GROOVY-9786] - SC: cast exception for variable assigned within conditional blocks
- [GROOVY-9790] - bootstrap method initialization exception raised when lambda parameter type is wrong
- [GROOVY-9791] - SC: cross-package protected field access uses dynamic property methods
- [GROOVY-9799] - Using a method reference causes a compiler error
- [GROOVY-9803] - Static type checker forgets nested generic types
- [GROOVY-9814] - Method reference doesn't accept subtypes of argument
- [GROOVY-9815] - Object not bound with Groovy (but works fine in Java)
- [GROOVY-9816] - @AutoImplement does not consider declared properties
- [GROOVY-9821] - STC: spread-safe and list property access error for CollType<? extends ItemType>
- [GROOVY-9822] - StackOverflowError in STC
- [GROOVY-9824] - CVE-2020-17521 Apache Groovy Information Disclosure
- [GROOVY-9825] - interface constants from super interfaces lost in some contexts
- [GROOVY-9826] - Better propagation of InterruptedException
- [GROOVY-9828] - Migrate from Codehouse to Apache Groovy 4.0.0-alpha
- [GROOVY-9842] - Static inner class of a static inner class is missing inner class table attribute
Dependency upgrade
- [GROOVY-9783] - Bump gradle to 6.7
- [GROOVY-9787] - Bump javaparser to 3.16.2
- [GROOVY-9788] - Bump Ant version to 1.10.9 (fixes Apache Ant CVE 2020-11979)
- [GROOVY-9792] - Bump Spotbugs/Spotbugs annotations versions
- [GROOVY-9793] - Bump JUnit4 version to 4.13.1 (includes security fix)
- [GROOVY-9794] - Bump picocli version to 4.5.2
- [GROOVY-9809] - Bump jackson to 2.11.3
- [GROOVY-9810] - Bump javaparser to 3.16.3
- [GROOVY-9812] - Bump Spock version to 2.0-M4-groovy-3.0
- [GROOVY-9819] - bump jsp-api/servlet-api versions to 2.3.3/4.0.1
- [GROOVY-9820] - Bump gradle to 6.7.1
- [GROOVY-9830] - Bump xstream to 1.4.14
- [GROOVY-9831] - Bump javaparser to 3.17.0
- [GROOVY-9833] - Bump slf4j to 1.7.30
- [GROOVY-9834] - Bump logback to 1.2.3
- [GROOVY-9835] - Bump versions gradle plugin to 0.36.0
- [GROOVY-9836] - Bump checkstyle to 8.37
- [GROOVY-9837] - Bump japicmp gradle plugin to 0.2.9
- [GROOVY-9838] - Bump log4j2 version to 2.14.0
- [GROOVY-9839] - Bump Codenarc version to 2.0.0
- [GROOVY-9840] - Bump findsecbugs plugin to 1.11.0
- [GROOVY-9841] - Bump spotbugs plugin to 4.6.0
Improvement
- [GROOVY-9132] - Improve type inference for method reference
- [GROOVY-9767] - GroovyAssert should not depend on org.junit.Assert *
- [GROOVY-9808] - GroovyShell parse script use given context
- [GROOVY-9832] - groovy-jmx: JmxMetaMapBuilder should support GString object names
New Feature
- [GROOVY-8258] - [GEP] Create a LINQ-like DSL (basic cases)
- [GROOVY-9817] - Enhance Closure annotation value (as Closure class) to Arrays
Task
- [GROOVY-9773] - Rework gradle build to use modern conventions
- [GROOVY-9774] - Rework gradle build to use modern conventions - test remediation
- [GROOVY-9775] - Rework gradle build to use modern conventions - doc remediation
- [GROOVY-9827] - Rework gradle build to use modern conventions - better support "provided" concept *
* potentially breaking change (read issue for details - even minor differences are sometimes flagged as potentially breaking changes)