当Groovy JsonBuilder尝试序列化Expando时,为什么会出现StackOverflower错误?

当Groovy JsonBuilder尝试序列化Expando时,为什么会出现StackOverflower错误?,groovy,expando,jsonbuilder,Groovy,Expando,Jsonbuilder,当我尝试序列化Expando时,我得到了一个StackOverflower错误(没有追溯到我的代码)。使用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

当我尝试序列化Expando时,我得到了一个StackOverflower错误(没有追溯到我的代码)。使用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)
...
。。。groovy-2.0.6/bin/groovysh new groovy.json.JsonBuilder(new Expando(名称:'hello')).toString()
致命错误:java.lang.StackOverflower错误
栈溢出
位于java.lang.Exception。(Exception.java:77)
位于java.lang.reflect.InvocationTargetException。(InvocationTargetException.java:54)
位于sun.reflect.GeneratedMethodAccessor13.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
...

这应该行得通吧?

哇……这是个bug。看起来它是在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中的StackOverflower错误:

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上有一个bug:

很好,希望能修复它拉请求已被接受,因此2.1.0的下一个版本(最终版或rc3版,如果有)应该像在2.0.7、2.1.0和2.1.0-rc-3中修复的一样工作)