Apache Groovy 2.4.6 发布
Apache Groovy 2.4.6 发布,这是一个维护版本,完整改进记录包括:
Bug
[GROOVY-2178] - Shell can not handle multi-line list defs
[GROOVY-2242] - Missing information in Javadoc of ExpandoMetaClass.enableGlobally()
[GROOVY-3341] - MissingMethodException in Builder is misleading
[GROOVY-4698] - Possible memory leak in Tomcat
[GROOVY-4888] - groovy console script execution output appears in all output windows
[GROOVY-6067] - MetaClassImpl triggers new entries for maps with default
[GROOVY-6352] - Type checker ignores wrong number of constructor arguments
[GROOVY-6669] - Compile in groovyConsole instantiates class
[GROOVY-6787] - type checker does not check generics bounds of wildcards properly
[GROOVY-6835] - flow typing activated by if statement doing an "instanceof" check doesn't work as expected with interface types
[GROOVY-6922] - JsonSlurper loses trailing 0's in numbers (regression in Groovy 2.3)
[GROOVY-6958] - null != NullObject when using Categories
[GROOVY-7036] - An interface implementation (override) with a method including a default parameter value does not compile
[GROOVY-7074] - DelegatingScript does not work with Builder as delegate
[GROOVY-7105] - Oracle Thin Driver Fails with an Exception in Groovy 2.3.x
[GROOVY-7170] - STC error If we use java.lang.Integer as Target Type with method generics
[GROOVY-7342] - last enum value is hidden if annotated
[GROOVY-7363] - Frequent compilation error on cascading generic types
[GROOVY-7378] - Spaces in JAVA_OPTS env var prevent launching of groovy
[GROOVY-7420] - Cannot choose between primitive and object variants of an overloaded method
[GROOVY-7442] - spread-dot operator within assert isn't expected with @CompileStatic
[GROOVY-7535] - Groovy category throwing MissingMethodException and MissingPropertyException when using multiple threads
[GROOVY-7538] - Compiler crash in the static type checker with self-referencing generic type
[GROOVY-7587] - Groovy 2.2 and 2.4 all fail to execute almost any script with Java 9 JIGSAW preview builds
[GROOVY-7596] - src/test/org/codehaus/groovy/ast/LineColumnCheck.txt file missing header in source release
[GROOVY-7597] - Static Compiler tries to cast delegate to target type of property accessor
[GROOVY-7598] - type checking with generics
[GROOVY-7610] - Null safe is call throws VerifyError when used as condition with CompileStatic
[GROOVY-7618] - Parameterless closure to SAM coercion causes NPE during instruction selection with STC
[GROOVY-7621] - Memory Leak (metaClassRegistry) unable to remove metaClass based on instances
[GROOVY-7623] - IBM Java (J9) ClassValue works correctly so should use it by default
[GROOVY-7627] - Property calls are not correctly type checked if the setter parameter type or getter return type are not the field type
[GROOVY-7630] - JsonSlurper LAX parser with invalid number
[GROOVY-7631] - @CompileStatic compiles 0 != null to false
[GROOVY-7639] - NPE when using safe traversal operator with CompileStatic
[GROOVY-7644] - ExternalizeMethods generates incorrect bytecode for statically compiled nested classes
[GROOVY-7645] - Stub generator unescapes escaped backslashes in String annotation values
[GROOVY-7649] - Grape.resolve() always fails after first unresolved dependency
[GROOVY-7650] - CLONE - collectEntries throws cryptic error when used with split(delimiter, limit)
[GROOVY-7652] - Float/Double trunc methods perform rounding for negative values
[GROOVY-7656] - Spread safe method calls on list literals result in the list expression being evaluated twice (SC)
[GROOVY-7665] - JsonSlurperCharSource decimal parsing producing unexpected results
[GROOVY-7675] - Compiler customization builder not resolve secureAst properties
[GROOVY-7688] - Using spread operator on function with compile static results in two calls to function
[GROOVY-7694] - Results of spread safe method calls should be stored in temporary variables
[GROOVY-7698] - @CompileStatic safe navigation is broken for property style non-synthetic setter calls
[GROOVY-7702] - @CompileStatic and the method with(Closure) seem to determine wrong type
[GROOVY-7705] - CompileStatic closure accessing "thisObject" private field: setProperty instead of synthetic method
[GROOVY-7707] - StreamingJsonBuilder produces IllegalStateException when using unescaped output
[GROOVY-7709] - NPE with ConvertedClosure
[GROOVY-7710] - Random resolution of an overloaded method with arrays as last parameter called without an argument
[GROOVY-7711] - Wrong method resolution for an overridden method with varargs and covariant return type
[GROOVY-7715] - ulimit use is not supported on NonStop
[GROOVY-7716] - groovy.json.internal.FastStringUtils.StringImplementation#toCharArray fails on jdk9
[GROOVY-7717] - StaticTypeCheckingTestCase#shouldFailWithMessages erroneously passes
[GROOVY-7718] - java.lang.ClassFormatError: Illegal class name on runtime cast array to trait
[GROOVY-7726] - Groovysh doc command fails when using Java 9
[GROOVY-7742] - CompileStatic stackoverflow with generic method with different placeholder as type argument
[GROOVY-7747] - Generated Java stub for enum with abstract method is invalid
Documentation
[GROOVY-7524] - Document that mixing TupleConstructor and InheritConstructors will likely not give you what you want
[GROOVY-7533] - GroovyInterceptions.png has an inconsistency
[GROOVY-7592] - Problem in switch statement docs
[GROOVY-7603] - Update groovy docs for Category
[GROOVY-7605] - Improve docs for MetaClass getMethods vs getMetaMethods
[GROOVY-7625] - document why slashy strings allow brackets but double quoted strings do not
[GROOVY-7736] - Argfiles not documented for groovyc
Improvement
[GROOVY-7546] - Misleasing error message for null + something-that-is-not-a-string
[GROOVY-7583] - Unnecessary Instantiation on DefaultGroovyMethods.numberAwareCompareTo
[GROOVY-7612] - GroovyDoc should allow timestamp/version stamp info (hidden info embedded in HTML) to be omitted
[GROOVY-7626] - Allow security managers to prevent system property access for Indy
[GROOVY-7668] - Better error-message for AST transformation when binary compatibility changes
[GROOVY-7703] - Add support for Iterable with Closure to JsonBuilder/StreamingJsonBuilder
[GROOVY-7706] - StreamingJsonBuilder should supported nested closures
[GROOVY-7708] - StreamingJsonBuilder doesn't define DelegatesTo on some methods, impacting @CompileStatic usage
[GROOVY-7735] - Closures should be generated as public classes
[GROOVY-7737] - Provide static methods in GeneralUtils to create ThrowStatement and CatchStatement
[GROOVY-7739] - Groovsh code-completion should display groovy jdk enhancements of java.io.file
[GROOVY-7740] - Groovsh code-completion should display groovy jdk enhancements of String
Task
[GROOVY-7660] - gradle/utils.gradle: remove unused imports + general housekeeping