On 06.03.2018 13:23, Andres Almiray wrote:
I'm in the process of updating the Griffon build to use Groovy 2.4.14
and encountered a weird problem in one of the tests
The test runs fine with 2.413 but generates the following stacktrace
java.lang.VerifyError: (class: java_util_function_Function$identity, method:
callStatic signature: (Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;)
Illegal type in constant pool
this is clearly during callsite generation. The generated helper class
to realize the static method call is invalid. I would now go and change
the code to write those classes to disc and then I can look with a
"proper" tool at it. Or I would at least put the ASM verify into the queue
The "faulty" line is
Function<Integer, Integer> function = Function.identity()
I'm baffled by this error as java.util.function.Function is a core JDK type.
Build time: 2018-02-28 13:36:36 UTC
Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM: 1.8.0_162 (Oracle Corporation 25.162-b12)
OS: Mac OS X 10.12.5 x86_64
It is also possible that the code is valid on one JVM and not on
another. 1.8.0_162 seems to be the newest JDK 1.8. Did you try that
exact java version as well Paul?
Steps to reproduce:
$ git clone https://github.com/griffon/griffon.git
$ cd griffon
// update gradle.properties with groovyVersion = 2.4.14
$ ./gradlew :griffon-javafx-groovy:test
updating gradle.properties is not required, that is set to 2.4.14
already. Instead you should remove the @Ignore in
and this also fails with update 152, which reduces my theory, that is
depending on the JVM version
Using 2.5.0-beta-3: 712 tests completed, 208 failed.
Using 2.6.0-alpha-2: 712 tests completed, 52 failed
Using 2.6.0-alpha-3: fails with
Could not find groovy-all.jar (org.codehaus.groovy:groovy-all:2.6.0-alpha-3).
Searched in the following locations:
did not try 3.0.0-alpha-1, because it is from Nov. last year and did not
have a change I suspect
GriffonFXCollectionsExtensionTest seems to have worked for 2.5 and 2.6
Has anyone experimented a similar error? Any hints would be greatly
I think when I tried fixing Stream.of... which is a very similar case,
since this is a static method on an interface as well. So I know that
e34823cbabbce2a90829ead5d83c72806326946d and similar did cause some
trouble and I do know there have been fixes. But I think they got
applied to all branches. Can it be we forgot to backport something that
got applied to 2.5 and 2.6 (and most likely master), but not 2.4? the
class itself is the same in master and in 2.4.14 and on GROOVY_2_6_X...
GROOVY_2_5_X seems to be missing the change?!
For me this sounds like a "too many branches exception"