[ 
https://issues.apache.org/jira/browse/GROOVY-7826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15286341#comment-15286341
 ] 

Daniel Spilker commented on GROOVY-7826:
----------------------------------------

See [PR #333|https://github.com/apache/groovy/pull/333] for a reproducer. As 
far as I could see in the debugger, on master the ClassNodes of the generic 
type bounds are {{org.codehaus.groovy.ast.decompiled.DecompiledClassNode}} 
which do not carry the generic type information. And that breaks the recursion. 
When disabling ASM resolving, the problem can be reproduced on master.

It would be great if this could be fixed in 2.4. I backported my fix to 2.4 and 
testing this Jenkins 
([JENKINS-34751|https://issues.jenkins-ci.org/browse/JENKINS-34751]) has been 
successful.

> Infinite recursion in genericTypeAsString
> -----------------------------------------
>
>                 Key: GROOVY-7826
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7826
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.4.6
>         Environment: Groovy Version: 2.4.6 JVM: 1.8.0_91 Vendor: Oracle 
> Corporation OS: Linux
>            Reporter: Magnus Reftel
>              Labels: regresion
>         Attachments: groovy-7826.zip
>
>
> The following two Java classes C1 and C2 cause Groovy to enter infinite 
> recursion in genericTypeAsString when a method that takes a C1 is declared:
> C1.java:
> public class C1 <T2 extends C2<T2,T1>,T1 extends C1<T2,T1>> { }
> class C2<T2 extends C2<T2, T1>, T1 extends C1<T2, T1>> { }
> repro.groovy
> def f(C1 c1) { }
> This is reduced from actual code in Jenkins, where Run and Job have type 
> parameters like this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to