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)