Skip to content

AOT processing for bean validation causes StackOverflowError #33936

@mingchiuli

Description

@mingchiuli

Problem generate in spring boot Version: 3.4.0. It's normal in spring boot 3.3.6.

error log:

> Task :micro-blog:processAot

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.4.0)

2024-11-22T08:58:56.607+08:00  INFO 55656 --- [           main] w.chiu.micro.blog.MicroBlogApplication   : Starting MicroBlogApplication using Java 23.0.1 with PID 55656 (/Users/mingchiuli/Desktop/megalith-micro/micro-blog/build/classes/java/main started by mingchiuli in /Users/mingchiuli/Desktop/megalith-micro/micro-blog)
2024-11-22T08:58:56.609+08:00  INFO 55656 --- [           main] w.chiu.micro.blog.MicroBlogApplication   : The following 1 profile is active: "dev"
2024-11-22T08:58:57.159+08:00  INFO 55656 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2024-11-22T08:58:57.159+08:00  INFO 55656 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-11-22T08:58:57.240+08:00  INFO 55656 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 76 ms. Found 2 JPA repository interfaces.
2024-11-22T08:58:57.250+08:00  INFO 55656 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2024-11-22T08:58:57.251+08:00  INFO 55656 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2024-11-22T08:58:57.261+08:00  INFO 55656 --- [           main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface wiki.chiu.micro.blog.repository.BlogRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
2024-11-22T08:58:57.261+08:00  INFO 55656 --- [           main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface wiki.chiu.micro.blog.repository.BlogSensitiveContentRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
2024-11-22T08:58:57.261+08:00  INFO 55656 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 Redis repository interfaces.
Exception in thread "main" java.lang.StackOverflowError
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.checkReceiver(DirectMethodHandleAccessor.java:196)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:99)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
	at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:265)
	at org.springframework.core.SerializableTypeWrapper$MethodInvokeTypeProvider.getType(SerializableTypeWrapper.java:357)
	at org.springframework.core.SerializableTypeWrapper.forTypeProvider(SerializableTypeWrapper.java:106)
	at org.springframework.core.SerializableTypeWrapper$TypeProxyInvocationHandler.invoke(SerializableTypeWrapper.java:215)
	at org.springframework.core.$Proxy6.getActualTypeArguments(Unknown Source)
	at org.springframework.core.ResolvableType.getGenerics(ResolvableType.java:809)
	at org.springframework.core.ResolvableType.getGeneric(ResolvableType.java:762)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.lambda$processAheadOfTime$0(BeanValidationBeanRegistrationAotProcessor.java:162)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:728)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:707)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.processAheadOfTime(BeanValidationBeanRegistrationAotProcessor.java:150)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.lambda$processAheadOfTime$0(BeanValidationBeanRegistrationAotProcessor.java:170)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:728)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:707)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.processAheadOfTime(BeanValidationBeanRegistrationAotProcessor.java:150)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.lambda$processAheadOfTime$0(BeanValidationBeanRegistrationAotProcessor.java:170)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:728)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:707)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.processAheadOfTime(BeanValidationBeanRegistrationAotProcessor.java:150)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.lambda$processAheadOfTime$0(BeanValidationBeanRegistrationAotProcessor.java:170)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:728)
	at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:707)
	at org.springframework.validation.beanvalidation.BeanValidationBeanRegistrationAotProcessor$BeanValidationDelegate.processAheadOfTime(BeanValidationBeanRegistrationAotProcessor.java:150)
	at org.springframework.validation.beanvalidat

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)status: supersededAn issue that has been superseded by anothertheme: aotAn issue related to Ahead-of-time processingtype: regressionA bug that is also a regression

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions