4

当我尝试序列化 Expando 时,出现 StackoverflowError(未追溯到我的代码)。用 groovy shell 复制:

... groovy-2.0.6/bin/groovysh new groovy.json.JsonBuilder(new Expando(name:'hello')).toString()
FATAL: java.lang.StackOverflowError
java.lang.StackOverflowError
        at java.lang.Exception.<init>(Exception.java:77)
        at java.lang.reflect.InvocationTargetException.<init>(InvocationTargetException.java:54)
        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
...

这应该有效吗?

4

1 回答 1

3

哇..这是一个错误。看起来它是在 1.8.8 引入的

适用于 1.8.6:

groovy-1.8.6/bin/groovysh new groovy.json.JsonBuilder(new Expando(name:'hello')).toString();

===> {"name":"hello"}

1.8.8 的 StackoverflowError:

groovy-1.8.8/bin/groovysh new groovy.json.JsonBuilder(new Expando(name:'hello')).toString();
FATAL: java.lang.StackOverflowError
java.lang.StackOverflowError

看起来在 2.1.0rc1 上有一个错误:https ://issues.apache.org/jira/browse/GROOVY-5918

于 2013-01-18T20:28:59.177 回答