groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul King <pa...@asert.com.au>
Subject Re: Unexpected compilation error with 2.4.14
Date Wed, 07 Mar 2018 00:34:56 GMT
Okay, I can reproduce now on 2.4.14 and latest 2_4_X using 1.8.0_161.
No problem on that JVM version with 2.5.0-beta-3 or 2_5_X with the
cherry-picked change or 2.6.0-alpha-3 or master.

Cheers, Paul.

On Wed, Mar 7, 2018 at 10:13 AM, Paul King <paulk@asert.com.au> wrote:

> I used 1.8.0_161 but so far have only pasted the problematic line into
> Groovy Console and run it.
>
> Jochen, your change did seem to be missing on 2_5_X but was on the other
> branches. I just cherry picked it onto 2_5_X.
> I think we need to close off GROOVY-8338 and clone a new issue with a new
> reproducer.
>
> Cheers, Paul.
>
>
>
>
> On Wed, Mar 7, 2018 at 9:37 AM, Jochen Theodorou <blackdrag@gmx.org>
> wrote:
>
>> On 06.03.2018 13:23, Andres Almiray wrote:
>>
>>> Hello everyone,
>>>
>>> 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
>>> https://github.com/griffon/griffon/blob/development/subproje
>>> cts/griffon-javafx-groovy/src/test/groovy/griffon/javafx/Gri
>>> ffonFXCollectionsExtensionTest.groovy#L78
>>>
>>> The test runs fine with 2.413 but generates the following stacktrace
>>> with 2.4.14
>>>
>>> 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
>>>
>> [...]
>>
>>>         at org.codehaus.groovy.reflection.ClassLoaderForClassArtifacts.
>>> defineClassAndGetConstructor(ClassLoaderForClassArtifacts.java:82)
>>>         at org.codehaus.groovy.runtime.callsite.CallSiteGenerator.compi
>>> leStaticMethod(CallSiteGenerator.java:262)
>>>         at org.codehaus.groovy.reflection.CachedMethod.createStaticMeta
>>> MethodSite(CachedMethod.java:295)
>>>         at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.cr
>>> eateStaticMetaMethodSite(StaticMetaMethodSite.java:114)
>>>
>> [...]
>>
>> 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.
>>>
>>> Environment
>>>
>>> ------------------------------------------------------------
>>> Gradle 4.6
>>> ------------------------------------------------------------
>>>
>>> Build time:   2018-02-28 13:36:36 UTC
>>> Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c
>>>
>>> Groovy:       2.4.12
>>> 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
>> https://github.com/griffon/griffon/blob/development/subproje
>> cts/griffon-javafx-groovy/src/test/groovy/griffon/javafx/Gri
>> ffonFXCollectionsExtensionTest.groovy#L78
>>
>> 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-al
>>> l:2.6.0-alpha-3).
>>>   Searched in the following locations:
>>>       https://jcenter.bintray.com/org/codehaus/groovy/groovy-all/2
>>> .6.0-alpha-3/groovy-all-2.6.0-alpha-3.jar
>>>
>>
>> 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
>> though
>>
>> Has anyone experimented a similar error? Any hints would be greatly
>>> appreciated :-)
>>>
>>
>> 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"
>>
>> bye Jochen
>>
>>
>

Mime
View raw message