2013-01-18 2 views
4

Expando를 직렬화하려고하면 StackoverflowError (내 코드로 추적되지 않음)가 표시됩니다. 그루비 쉘로 재현 :왜 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

와우. 이것은 버그입니다.

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

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

에 StackOverflowError를 1.8.8에서 :이 1.8.6에서 1.8.8

작품에 소개 된 것 같은데 2.1.0rc1 출원 버그이 같은

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

이 보이는 : http://jira.codehaus.org/browse/GROOVY-5918

+0

희망 사항으로 해결할 수있는 잡기 [제출 요청 제출] ( –

+0

) 풀 요청이 수락되었으므로 다음 버전 2.1.0 (최종 또는 rc3이 있으면 하나)이 작동해야합니다. –

+2

2.0.7, 2.1.0 및 2.1.0-rc-3에서 수정 된 것처럼 보입니다 :-) –

관련 문제