2013-01-18 63 views
4

當我嘗試序列化Expando時,我得到一個StackoverflowError(未追溯到我的代碼)。轉載Groovy外殼:爲什麼Groovy JsonBuilder嘗試序列化Expando時會出現StackoverflowError?

... 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) 
... 

這應該工作正確嗎?

回答

3

哇..這是一個錯誤。看起來就像是在1.8.8

作品介紹在1.8.6:

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

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

的StackOverflowError在1.8.8:

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建檔的錯誤:http://jira.codehaus.org/browse/GROOVY-5918

+0

良好的捕獲,[提交拉請求](https://github.com/groovy/groovy-core/pull/120),希望修復它 –

+0

拉請求已被接受,所以下一個版本2.1.0(最終或rc3,如果有的話)應該可以工作 –

+2

看起來它已經在2.0.7,2.1.0和2.1.0-rc-3中修復了:-) –

相關問題