I created https://issues.apache.org/jira/browse/GROOVY-8494 to track this.

Cheers, Paul.

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

> 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 <pa...@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 <blackd...@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
>>>
>>>
>>
>

Reply via email to