3
我們的架構將Spring與MongoDB結合在一起。我們通常在保存/編輯和閱讀自定義對象時沒有任何問題。最近,我們已經跑了,我們開始收到以下錯誤MongoDB - Spring - 保存對象會導致StackOverflowError
java.lang.StackOverflowError
at java.util.Collections.emptyList(Collections.java:2959)
at org.springframework.data.util.TypeDiscoverer.getTypeArguments(TypeDiscoverer.java:442)
at org.springframework.data.util.ClassTypeInformation.getTypeArguments(ClassTypeInformation.java:40)
at org.springframework.data.util.TypeDiscoverer.getActualType(TypeDiscoverer.java:288)
at org.springframework.data.util.ClassTypeInformation.getActualType(ClassTypeInformation.java:40)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.addCustomTypeKeyIfNecessary(MappingMongoConverter.java:650)
或者
java.lang.StackOverflowError
at sun.misc.Unsafe.getObject(Native Method)
at sun.misc.Unsafe.getObject(Unsafe.java:231)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:19)
at java.lang.reflect.Field.get(Field.java:358)
at org.springframework.util.ReflectionUtils.getField(ReflectionUtils.java:118)
at org.springframework.data.mapping.model.BeanWrapper.getProperty(BeanWrapper.java:133)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$3.doWithPersistentProperty(MappingMongoConverter.java:382)
我將所有結合我們的架構主要類別之前,我想了一些修改是否 任你以前遇到過這種例外情況?
哇,很高興你明白這一點。通過將記錄器聲明爲私有是否有幫助? – 2014-02-12 19:26:07
將其標記爲靜態(首選)或暫時(因爲,爲什麼不?),你應該沒問題。你真的不想每個實例都有一個記錄器。 – evanchooly
我必須檢查,我們使用的MongoDB驅動程序還不是很成熟,當我意識到它試圖保留最終的記錄器變量時,我感到震驚。我在某處讀到,如果我使用瞬態,它會好起來的,我將不得不驗證這一點。 – Uri