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