Spring Boot从2.7.12升级到3.0.8时出现StackOverflowError求助
Spring Boot 2.7.12 升级至3.0.8时出现StackOverflowError问题
错误堆栈信息
java.lang.StackOverflowError: null at org.springframework.data.mapping.model.ClassGeneratingPropertyAccessorFactory.getPropertyAccessor(ClassGeneratingPropertyAccessorFactory.java:82) at org.springframework.data.mapping.model.InstantiationAwarePropertyAccessorFactory.lambda$getPropertyAccessor$0(InstantiationAwarePropertyAccessorFactory.java:42) at org.springframework.data.mapping.model.InstantiationAwarePropertyAccessor.getProperty(InstantiationAwarePropertyAccessor.java:124) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeProperties(MappingMongoConverter.java:887) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:869) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writePropertyInternal(MappingMongoConverter.java:1003) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeProperties(MappingMongoConverter.java:894) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:869) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writePropertyInternal(MappingMongoConverter.java:1003) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeProperties(MappingMongoConverter.java:894) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:869) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writePropertyInternal(MappingMongoConverter.java:1003) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeProperties(MappingMongoConverter.java:894) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:869) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writePropertyInternal(MappingMongoConverter.java:1003) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeProperties(MappingMongoConverter.java:894) at org.springframework.data.mongodb.core.convert.MappingMongoConverter.writeInternal(MappingMongoConverter.java:869)
实体类代码
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.xxx.util.JodaDateTimeCustomDeserializer; import com.xxx.util.JodaDateTimeCustomSerializer; import org.joda.time.DateTime; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import lombok.Data; @Document(collection = "data") @JsonIgnoreProperties(ignoreUnknown = true) @Data public class IMData { @Id private String id; private String uid; @JsonSerialize(using = JodaDateTimeCustomSerializer.class) @JsonDeserialize(using = JodaDateTimeCustomDeserializer.class) private DateTime timestamp; @JsonSerialize(using = JodaDateTimeCustomSerializer.class) @JsonDeserialize(using = JodaDateTimeCustomDeserializer.class) private DateTime metaDataTimestamp; private String ioConfig; private int changeCount; private String inventoryDbId; private String hostname; private boolean isManual; }
问题说明
升级Spring Boot版本后触发上述栈溢出错误,当前使用Joda Time处理MongoDB中的日期字段。从错误栈可见MappingMongoConverter在循环调用writeProperties和writeInternal方法,推测是循环依赖导致,但Spring Boot未抛出对应的循环依赖异常,需要协助排查该问题。
内容的提问来源于stack exchange,提问作者R0512S
相关产品推荐
相关产品推荐

