Skip to content

springdoc-ui 2.8.15 doesn't work with native compile GraalVM 25 #3205

@nekitbr

Description

@nekitbr

Describe the bug

When using Spring boot 3.5.9 + gradle + GraalVM 25 (native) + org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.15, the app builds but fails on runtime with this log:

Click to expand
  2026-01-19T16:10:44.848176324Z   .   ____          _            __ _ _
  2026-01-19T16:10:44.848179934Z  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  2026-01-19T16:10:44.848182715Z ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  2026-01-19T16:10:44.848188485Z  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  2026-01-19T16:10:44.848191965Z   '  |____| .__|_| |_|_| |_\__, | / / / /
  2026-01-19T16:10:44.848194835Z  =========|_|==============|___/=/_/_/_/
  2026-01-19T16:10:44.848197426Z 
  2026-01-19T16:10:44.848199936Z  :: Spring Boot ::                (v3.5.9)
  2026-01-19T16:10:44.848202736Z 
  2026-01-19T16:10:44.849414974Z 2026-01-19T16:10:44.849Z  INFO 1 --- [demo] [           main] com.example.demo.DemoApplication         : Starting AOT-processed DemoApplication using Java 25.0.1 with PID 1 (/app/build/native/nativeCompile/demo started by root in /app)
  2026-01-19T16:10:44.849431085Z 2026-01-19T16:10:44.849Z  INFO 1 --- [demo] [           main] com.example.demo.DemoApplication         : No active profile set, falling back to 1 default profile: "default"
  2026-01-19T16:10:44.866904401Z 2026-01-19T16:10:44.866Z  INFO 1 --- [demo] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
  2026-01-19T16:10:44.868693678Z 2026-01-19T16:10:44.867Z  INFO 1 --- [demo] [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
  2026-01-19T16:10:44.868721870Z 2026-01-19T16:10:44.867Z  INFO 1 --- [demo] [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.50]
  2026-01-19T16:10:44.877874686Z 2026-01-19T16:10:44.877Z  INFO 1 --- [demo] [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
  2026-01-19T16:10:44.877887597Z 2026-01-19T16:10:44.877Z  INFO 1 --- [demo] [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 28 ms
  2026-01-19T16:10:44.899023613Z 2026-01-19T16:10:44.898Z  WARN 1 --- [demo] [           main] w.s.c.ServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0: Error creating bean with name 'swaggerWebMvcConfigurer': Unsatisfied dependency expressed through method 'swaggerWebMvcConfigurer' parameter 3: Error creating bean with name 'indexPageTransformer': Unsatisfied dependency expressed through method 'indexPageTransformer' parameter 2: Error creating bean with name 'swaggerWelcome': Instantiation of supplied bean failed
  2026-01-19T16:10:44.900067249Z 2026-01-19T16:10:44.898Z  INFO 1 --- [demo] [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
  2026-01-19T16:10:44.902290220Z Application run failed
  2026-01-19T16:10:44.902307311Z org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0: Error creating bean with name 'swaggerWebMvcConfigurer': Unsatisfied dependency expressed through method 'swaggerWebMvcConfigurer' parameter 3: Error creating bean with name 'indexPageTransformer': Unsatisfied dependency expressed through method 'indexPageTransformer' parameter 2: Error creating bean with name 'swaggerWelcome': Instantiation of supplied bean failed
  2026-01-19T16:10:44.902312681Z 	at org.springframework.beans.factory.aot.AutowiredMethodArgumentsResolver.resolveArguments(AutowiredMethodArgumentsResolver.java:187)
  2026-01-19T16:10:44.902315542Z 	at org.springframework.beans.factory.aot.AutowiredMethodArgumentsResolver.resolve(AutowiredMethodArgumentsResolver.java:137)
  2026-01-19T16:10:44.902318022Z 	at org.springframework.beans.factory.aot.AutowiredMethodArgumentsResolver.resolve(AutowiredMethodArgumentsResolver.java:123)
  2026-01-19T16:10:44.902320482Z 	at org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration_EnableWebMvcConfiguration__Autowiring.apply(WebMvcAutoConfiguration_EnableWebMvcConfiguration__Autowiring.java:18)
  2026-01-19T16:10:44.902323012Z 	at org.springframework.beans.factory.support.InstanceSupplier$1.get(InstanceSupplier.java:83)
  2026-01-19T16:10:44.902325542Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:1032)
  2026-01-19T16:10:44.902327932Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1257)
  2026-01-19T16:10:44.902330383Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1200)
  2026-01-19T16:10:44.902332803Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
  2026-01-19T16:10:44.902335513Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
  2026-01-19T16:10:44.902338013Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
  2026-01-19T16:10:44.902340363Z 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
  2026-01-19T16:10:44.902351514Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
  2026-01-19T16:10:44.902354074Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
  2026-01-19T16:10:44.902356494Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1228)
  2026-01-19T16:10:44.902358905Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1194)
  2026-01-19T16:10:44.902361335Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1130)
  2026-01-19T16:10:44.902363805Z 	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:990)
  2026-01-19T16:10:44.902366225Z 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
  2026-01-19T16:10:44.902368585Z 	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
  2026-01-19T16:10:44.902371025Z 	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
  2026-01-19T16:10:44.902373366Z 	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
  2026-01-19T16:10:44.902375716Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
  2026-01-19T16:10:44.902378056Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
  2026-01-19T16:10:44.902380366Z 	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
  2026-01-19T16:10:44.902382726Z 	at com.example.demo.DemoApplication.main(DemoApplication.java:10)
  2026-01-19T16:10:44.902385176Z 	at java.base@25.0.1/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
  2026-01-19T16:10:44.902387767Z Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'swaggerWebMvcConfigurer': Unsatisfied dependency expressed through method 'swaggerWebMvcConfigurer' parameter 3: Error creating bean with name 'indexPageTransformer': Unsatisfied dependency expressed through method 'indexPageTransformer' parameter 2: Error creating bean with name 'swaggerWelcome': Instantiation of supplied bean failed
  2026-01-19T16:10:44.902390667Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveAutowiredArgument(BeanInstanceSupplier.java:370)
  2026-01-19T16:10:44.902393067Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArguments(BeanInstanceSupplier.java:290)
  2026-01-19T16:10:44.902395437Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:224)
  2026-01-19T16:10:44.902397827Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:1032)
  2026-01-19T16:10:44.902409298Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1257)
  2026-01-19T16:10:44.902411828Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1200)
  2026-01-19T16:10:44.902414258Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
  2026-01-19T16:10:44.902416688Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
  2026-01-19T16:10:44.902419149Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
  2026-01-19T16:10:44.902421599Z 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
  2026-01-19T16:10:44.902423989Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
  2026-01-19T16:10:44.902426369Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
  2026-01-19T16:10:44.902428749Z 	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
  2026-01-19T16:10:44.902431169Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:2022)
  2026-01-19T16:10:44.902434090Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1985)
  2026-01-19T16:10:44.902436560Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeanCollection(DefaultListableBeanFactory.java:1875)
  2026-01-19T16:10:44.902439010Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1843)
  2026-01-19T16:10:44.902441440Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1719)
  2026-01-19T16:10:44.902443900Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
  2026-01-19T16:10:44.902446270Z 	at org.springframework.beans.factory.aot.AutowiredMethodArgumentsResolver.resolveArguments(AutowiredMethodArgumentsResolver.java:179)
  2026-01-19T16:10:44.902448711Z 	... 26 more
  2026-01-19T16:10:44.902451021Z Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexPageTransformer': Unsatisfied dependency expressed through method 'indexPageTransformer' parameter 2: Error creating bean with name 'swaggerWelcome': Instantiation of supplied bean failed
  2026-01-19T16:10:44.902453681Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveAutowiredArgument(BeanInstanceSupplier.java:370)
  2026-01-19T16:10:44.902456081Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArguments(BeanInstanceSupplier.java:290)
  2026-01-19T16:10:44.902462552Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:224)
  2026-01-19T16:10:44.902465042Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:1032)
  2026-01-19T16:10:44.902486693Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1257)
  2026-01-19T16:10:44.902511040Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1200)
  2026-01-19T16:10:44.902516411Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
  2026-01-19T16:10:44.902520221Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
  2026-01-19T16:10:44.902522991Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
  2026-01-19T16:10:44.902525581Z 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
  2026-01-19T16:10:44.902527801Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
  2026-01-19T16:10:44.902530271Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
  2026-01-19T16:10:44.902532792Z 	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
  2026-01-19T16:10:44.902535262Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
  2026-01-19T16:10:44.902537522Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
  2026-01-19T16:10:44.902539972Z 	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
  2026-01-19T16:10:44.902542372Z 	at org.springframework.beans.factory.support.RegisteredBean.resolveAutowiredArgument(RegisteredBean.java:253)
  2026-01-19T16:10:44.902544682Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveAutowiredArgument(BeanInstanceSupplier.java:367)
  2026-01-19T16:10:44.902546943Z 	... 45 more
  2026-01-19T16:10:44.902549163Z Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'swaggerWelcome': Instantiation of supplied bean failed
  2026-01-19T16:10:44.902551503Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1263)
  2026-01-19T16:10:44.902553823Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1200)
  2026-01-19T16:10:44.902563314Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569)
  2026-01-19T16:10:44.902565844Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
  2026-01-19T16:10:44.902568354Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
  2026-01-19T16:10:44.902570844Z 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
  2026-01-19T16:10:44.902573244Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
  2026-01-19T16:10:44.902575545Z 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
  2026-01-19T16:10:44.902577805Z 	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
  2026-01-19T16:10:44.902580105Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1770)
  2026-01-19T16:10:44.902582425Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1653)
  2026-01-19T16:10:44.902584735Z 	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
  2026-01-19T16:10:44.902587035Z 	at org.springframework.beans.factory.support.RegisteredBean.resolveAutowiredArgument(RegisteredBean.java:253)
  2026-01-19T16:10:44.902589355Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveAutowiredArgument(BeanInstanceSupplier.java:367)
  2026-01-19T16:10:44.902591636Z 	... 62 more
  2026-01-19T16:10:44.902593806Z Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class org.springdoc.core.providers.SpringWebProvider: Common causes of this problem include using a final class or a non-visible class
  2026-01-19T16:10:44.902596266Z 	at org.springframework.aop.framework.CglibAopProxy.buildProxy(CglibAopProxy.java:238)
  2026-01-19T16:10:44.902598486Z 	at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:168)
  2026-01-19T16:10:44.902600826Z 	at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
  2026-01-19T16:10:44.902603276Z 	at org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver.buildLazyResolutionProxy(ContextAnnotationAutowireCandidateResolver.java:102)
  2026-01-19T16:10:44.902605697Z 	at org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver.buildLazyResolutionProxy(ContextAnnotationAutowireCandidateResolver.java:83)
  2026-01-19T16:10:44.902608277Z 	at org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver.getLazyResolutionProxyIfNecessary(ContextAnnotationAutowireCandidateResolver.java:53)
  2026-01-19T16:10:44.902612047Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1647)
  2026-01-19T16:10:44.902618727Z 	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913)
  2026-01-19T16:10:44.902621178Z 	at org.springframework.beans.factory.support.RegisteredBean.resolveAutowiredArgument(RegisteredBean.java:253)
  2026-01-19T16:10:44.902623568Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveAutowiredArgument(BeanInstanceSupplier.java:367)
  2026-01-19T16:10:44.902625938Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.resolveArguments(BeanInstanceSupplier.java:290)
  2026-01-19T16:10:44.902628198Z 	at org.springframework.beans.factory.aot.BeanInstanceSupplier.get(BeanInstanceSupplier.java:224)
  2026-01-19T16:10:44.902630608Z 	at org.springframework.beans.factory.support.InstanceSupplier$1.get(InstanceSupplier.java:83)
  2026-01-19T16:10:44.902632908Z 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:1032)
  2026-01-19T16:10:44.902635509Z 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1257)
  2026-01-19T16:10:44.902638019Z 	... 75 more
  2026-01-19T16:10:44.902640339Z Caused by: org.springframework.cglib.core.CodeGenerationException: java.lang.NoSuchMethodException-->org.springdoc.core.providers.SpringWebProvider$$SpringCGLIB$$0.CGLIB$SET_THREAD_CALLBACKS([Lorg.springframework.cglib.proxy.Callback;)
  2026-01-19T16:10:44.902643039Z 	at org.springframework.cglib.proxy.Enhancer$EnhancerFactoryData.<init>(Enhancer.java:501)
  2026-01-19T16:10:44.902645609Z 	at org.springframework.cglib.proxy.Enhancer.wrapCachedClass(Enhancer.java:801)
  2026-01-19T16:10:44.902648099Z 	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.lambda$new$1(AbstractClassGenerator.java:108)
  2026-01-19T16:10:44.902650520Z 	at org.springframework.cglib.core.internal.LoadingCache.lambda$createEntry$1(LoadingCache.java:52)
  2026-01-19T16:10:44.902653060Z 	at java.base@25.0.1/java.util.concurrent.FutureTask.run(FutureTask.java:328)
  2026-01-19T16:10:44.902655520Z 	at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:57)
  2026-01-19T16:10:44.902658840Z 	at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
  2026-01-19T16:10:44.902661310Z 	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:129)
  2026-01-19T16:10:44.902663761Z 	at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:321)
  2026-01-19T16:10:44.902666241Z 	at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:562)
  2026-01-19T16:10:44.902668801Z 	at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:407)
  2026-01-19T16:10:44.902671251Z 	at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:62)
  2026-01-19T16:10:44.902677721Z 	at org.springframework.aop.framework.CglibAopProxy.buildProxy(CglibAopProxy.java:229)
  2026-01-19T16:10:44.902680902Z 	... 89 more
  2026-01-19T16:10:44.902683352Z Caused by: java.lang.NoSuchMethodException: org.springdoc.core.providers.SpringWebProvider$$SpringCGLIB$$0.CGLIB$SET_THREAD_CALLBACKS([Lorg.springframework.cglib.proxy.Callback;)
  2026-01-19T16:10:44.902685852Z 	at java.base@25.0.1/java.lang.Class.checkMethod(DynamicHub.java:1343)
  2026-01-19T16:10:44.902688252Z 	at java.base@25.0.1/java.lang.Class.getDeclaredMethod(DynamicHub.java:1487)
  2026-01-19T16:10:44.902690702Z 	at org.springframework.cglib.proxy.Enhancer.getCallbacksSetter(Enhancer.java:901)
  2026-01-19T16:10:44.902693103Z 	at org.springframework.cglib.proxy.Enhancer$EnhancerFactoryData.<init>(Enhancer.java:490)
  2026-01-19T16:10:44.902695523Z 	... 101 more

To Reproduce
Steps to reproduce the behavior:

  1. pull from https://github.com/nekitbr/sprindoc-graalvm-issue
    • this is just a starting repo with graalvm + springdoc in the latest spring boot 3 version
  2. run Dockerfile
  3. see error happening
  4. downgrade springdoc from 2.8.15 -> 2.8.14
  5. run Dockerfile
  6. see application starting
  • What version of spring-boot you are using? 3.5.9
  • What modules and versions of springdoc-openapi are you using? 2.8.15
  • What is the actual and the expected result using OpenAPI Description (yml or json)? - {"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"http://localhost:8080","description":"Generated server url"}],"paths":{"/":{"get":{"tags":["my-controller"],"operationId":"getHelloWorld","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string"}}}}}}}},"components":{}}
  • Provide with a sample code (HelloController) or Test that reproduces the problem - https://github.com/nekitbr/sprindoc-graalvm-issue

Expected behavior

  • Application should start

Additional context

  • Only happens with GraalVM nativeCompile, does not happen with regular JDK. Did not test with maven, only with gradle, but probably has the same issue.
  • If you disable swagger-ui, the issue disappears
  • The workaround is to downgrade from 2.8.15 -> 2.8.14

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions