You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 19:15:54