You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Shil Sinha (JIRA)" <ji...@apache.org> on 2016/02/05 22:27:39 UTC

[jira] [Commented] (GROOVY-7741) StackoverflowError with Closure and CompileStatic

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

Shil Sinha commented on GROOVY-7741:
------------------------------------

The closure passed to nodes.each calls itself instead of addTextClosure.

> StackoverflowError with Closure and CompileStatic
> -------------------------------------------------
>
>                 Key: GROOVY-7741
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7741
>             Project: Groovy
>          Issue Type: Bug
>          Components: Static compilation
>    Affects Versions: 2.4.5
>            Reporter: Gerhard Langs
>
> run the code below - it fails with a stackoverflow:
> {code}
> $ groovy ClosureStackOverflow.groovy
> Caught: java.lang.StackOverflowError
> java.lang.StackOverflowError
>         at ClosureStackOverflow$_f_closure2.call(ClosureStackOverflow.groovy)
>         at ClosureStackOverflow$_f_closure2.doCall(ClosureStackOverflow.groovy:17)
>         at ClosureStackOverflow$_f_closure2.call(ClosureStackOverflow.groovy)
>         at ClosureStackOverflow$_f_closure2.doCall(ClosureStackOverflow.groovy:17)
>         at ClosureStackOverflow$_f_closure2.call(ClosureStackOverflow.groovy)
>         at ClosureStackOverflow$_f_closure2.doCall(ClosureStackOverflow.groovy:17)
> {code}
> {code}
> import groovy.transform.CompileStatic
> @CompileStatic
> class ClosureStackOverflow {
>     Closure addTextClosure = { "xx" }
>     void f()
>     {
>         List nodes = [ "sth" ]
>         nodes.each {
>             // here we get the overflow:
>             addTextClosure()
>         }
>     }
>     static void main(String[] args) {
>         new ClosureStackOverflow().f()
>     }
> }
> {code}



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